Крошечный язык для изучения парсера - PullRequest
1 голос
/ 13 июля 2011

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

Например: Lua составляет около 18 тысяч строк кода Сед около 20К Значок около 41K Ed (текстовый редактор) имеет размер около 2.7K, но кажется, что он немного отличается от языков, которые я знаю.

Кто-нибудь может порекомендовать маленький язык для изучения? не имеет значения, полезно это или нет.

Википедия относится к «крошечному языку программирования, но ссылки на него нет.

Спасибо за чтение - Патрик

Ответы [ 3 ]

1 голос
/ 01 января 2014

Tiny изначально был разработан Джеком Креншоу для его учебника на паскальском языке «Давайте построим компилятор», теперь учебник перешел по ссылке, которую я имел!Я полагаю, что некоторые люди использовали это или что-то подобное в ряде курсов для обучения идеям, лежащим в основе компиляторов.

Здесь есть версия http://www.e -booksdirectory.com / details.php? ebook = 1137e

В его нынешнем виде он выводит сборку, предназначенную для процессоров MC680x0, которые используются в домашних компьютерах типа Atari ST / comodore Amiga конца 1980-х годов.

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

0 голосов
/ 13 июля 2011

я бы предложил изучать БНФ на каком-нибудь языке, например, c: http://www.cs.man.ac.uk/~pjj/bnf/c_syntax.bnf

Потому что изучение кода вообще не поможет понять рекурсивный парсер. Выясните, что такое BNF, изучите C_syntax bnf, попробуйте написать некоторый код и проанализировать его на бумаге - я написал свой компилятор, так что это было мое начало, чтобы попытаться понять, как он работает.

0 голосов
/ 13 июля 2011

Взгляните на пример калькулятора , который можно найти в вики ANTLR.Оттуда вы можете попробовать некоторые другие задачи, такие как анализ файлов CSV, или упражнения в нижней части сайта класса Терренса Парра .

...