Страницы

Поиск по вопросам

четверг, 13 февраля 2020 г.

Как создать простой компилятор для простого языка (например, brainfuck)?

#g++ #компилятор #brainfuck #cpp #ubuntu


В общем хочу написать компилятор brainfuck или своего собственного языка (простого).
Как это сделать?   
P.S.
  Интерпретатор (для brainfuck) я осилил сам, как сделать компилятор я даже не догадываюсь.
Желательно найти литературу.    


Ответы

Ответ 1



для brainfuck я когда то сам писал компилятор. Лучше для начала написать траслятор, который переведет код в с/с++/java/любой другой любимый язык. Это очень просто. Вот пример траслятора в Java. После того, как получится написать такое, никто не мешает написать похожее для ассеблера (для fasm или masm). Последней ступенькой будет генерирование сразу исполнимого файла. О том, что нужно знать ассемблер, я думаю вопросов нет. И ещё немного интересного материала - http://habrahabr.ru/blogs/development/113339/

Ответ 2



Есть такая книжка, Marc-André Cournoyer, «How To Create Your Own Freaking Awesome Programming Language» (по ссылке — продается, но ищущий название и слово "pdf" всегда найдет и где взять менее цивлизованно, ЕВПОЧЯ). Показывают основы на пальцах, этакая «Драконья Книга для самых маленьких». Начинают с лексера и парсера, затем интерпретатор, и затем — компилятор под LLVM и, на всякий случай, собственную игрушечную виртуальную машину. Все, правда, на Ruby, но общие идеи от языка не зависят. Так что если есть интерес — можете поискать и посмотреть, рекомендую.

Ответ 3



Было уже. Давайте создадим компилятор

Комментариев нет:

Отправить комментарий