Реклама

Тулпар: компилируемый язык с казахским синтаксисом, написанный с нуля (без LLVM, без libc, без C-компилятора)

#Тулпар #LLVM #C-компилятора #Рассказываю #Python
Тулпар: компилируемый язык с казахским синтаксисом, написанный с нуля (без LLVM, без libc, без C-компилятора)

Рассказываю про Тулпар (Тұлпар) — язык программирования с казахскими ключевыми словами и синтаксисом в стиле Python, который компилируется в нативный код x86-64. Компилятор и рантайм написаны на Rust с нуля: без LLVM и без libc, с собственным аллокатором регистров и сборщиком мусора. Разбираю конвейер компиляции, устройство GC, замеры против C, Rust и Python, а также то, чего в языке пока нет. Читать далее

Привет, Хабр! Я написал Тулпар (Тұлпар — крылатый конь из казахской мифологии) — язык программирования, в котором ключевые слова, сообщения об ошибках и встроенные функции на казахском, синтаксис похож на Python, а программы компилируются в нативный машинный код x86-64.

Это не транспилятор в C и не обёртка над LLVM. Весь путь от исходника до ELF-файла — мой: лексер, парсер, вывод типов, оптимизатор, аллокатор регистров, кодогенератор, а также рантайм со сборщиком мусора. Рантайм не использует libc и ходит в ядро системными вызовами напрямую.

Ниже — как это устроено, что получилось по скорости, и что дальше.

Как это выглядит