Хорошие языки, чтобы написать компилятор для - PullRequest
4 голосов
/ 19 декабря 2010

Я думаю о написании компилятора на haskell, и просто для того, чтобы получить некоторые знания и опыт, я постараюсь реализовать компиляторы для существующих языков.Может ли кто-нибудь дать мне список языков, которые подходят для этого?

Заранее спасибо

Ответы [ 7 ]

8 голосов
/ 20 декабря 2010

Паскаль может быть хорошим началом - вы можете скомпилировать его за один проход.Подмножество Lisp может быть полезно для понимания идеи лямбда-лифтинга.ML или даже подмножество Haskell может помочь вам понять вывод типа.Подумайте об использовании LLVM в качестве бэкенда, это сэкономит вам время на реализацию скучных вещей.

7 голосов
/ 20 декабря 2010

Схема часто используется для этого.Есть даже учебник под названием Создание схемы за 48 часов для Haskell.

4 голосов
/ 19 декабря 2010

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

3 голосов
/ 19 декабря 2010

Мир всегда нуждается в другом компиляторе c:)

2 голосов
/ 18 ноября 2011

PL / 0 - простой язык, созданный для обучения построению компилятора.Сэмюэль Уильямс написал для Python компилятор для него (вместе с виртуальной машиной) для студентов: http://www.oriontransfer.co.nz/learn/pl0-language-tools/index

2 голосов
/ 20 декабря 2010

Оберон-2 . Как у Lua короткая контекстно-свободная грамматика.

P.S. Здесь вы можете найти компилятор Oberon-2, написанный на Objective Caml.

1 голос
/ 19 декабря 2010

Насколько я знаю, одним из самых простых языков для компиляции является Forth. Я думаю, что вполне возможно написать компилятор для Forth в Forth даже для относительного новичка.

...