Как стать автором
Обновить

Компилятор за выходные: наконец-то ассемблер

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров8.9K
Всего голосов 22: ↑22 и ↓0+27
Комментарии17

Комментарии 17

Сними видео, как сделать собственный язык с нуля.

Моя задача - сделать компилятор, а не язык. Свой язык я придумал лишь для того, чтобы он был нужной экспрессивности, ни слишком богатый, ни слишком примитивный.

Хороший проект, особенно интересно будет посмотреть как будешь интегрировать llvm ir (к слову есть ещё несколько других достойных, может быть упомянешь о них)! Единственное не пойму - почему не добавить побитовые операции как встроенные операции в языке? Это же одни из самых быстрых операций которые компьютер может выполнять, зачем их из одной инструкции раздувать во множество?

Проект-то игрушечный, и добавление дополнительных инструкций не привносит ничего принципиально нового, а код раздувает, в итоге падает соотношение "польза/количество строк кода".

Если уж добавлять что-то в сам язык, то сборщик мусора или что-то навроде. Классы какие-нибудь тоже можно было бы. Но мне это не кажется уже настолько интересным. В общем, я обошёлся разумным минимумом (да, я знаю, что brainfuck ещё минималистичнее :) ).

Где же продолжение?

Раздумываю о хорошей иллюстрации для работы парсера. Там кода всего ничего, но иллюстрировать алгоритм динамического программирования не самая очевидная вещь.

Одна из ваших статей вдохновила на написание «99 бутылок пива» на предпроцессоре Си :-) Много лет назад я уже предпринимал попытку, но заленился.

А оно только в код gnu asm компилируется или на прямую в exe ?

Спрашивать с 500 строк питоновского кода генерировать непосредственно машинный код - это чуть перебор :)
Target language - это GNU ассемблер.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации