Язык общего назначения для построения компилятора для - PullRequest
12 голосов
/ 20 января 2009

Вдохновленный интервью Эрика Синка на подкасте stackoverflow Я хотел бы создать полный компилятор в свободное время для обучения. Сначала я думал создать компилятор C, но я не уверен, что это займет слишком много времени.

Мне интересно, есть ли меньший язык общего назначения, который будет более подходящим для реализации в качестве первого усилия компилятора? Или реализация C возможна в разумные сроки (200 часов)?

Я намерен нацелиться на ЦПР.

Ответы [ 13 ]

0 голосов
/ 03 мая 2010

Я бы порекомендовал написать компилятор brainf ** k. Это очень просто и хорошо для первого компилятора. И график будет больше, как полтора часа. Другими хорошими языками являются Forth, Logo и Lisp.

0 голосов
/ 20 января 2009

Напишите брейкфук или четвертый компилятор. BASIC, возможно, также является таким языком, не слишком богатым по функциям. Я думаю, что C будет в меру жестким. Не завидую целевой арке. Используйте все, что у вас есть.

Если вы не хотите реализовывать ассемблер, поместите выходной код сборки компилятора и вставьте его в газ или в нос.

0 голосов
/ 20 января 2009

С точки зрения простоты, FORTH станет одним из самых простых языков для разработки. Это потоковая интерпретация, а не действительно скомпилированная, но вы все равно будете иметь дело с разбором, хранением переменных и т. Д.

Для компилятора я бы выбрал C или Pascal, оба из которых довольно компактны и имеют исходный код для доступных компиляторов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...