есть ли простой компилятор для небольшого языка - PullRequest
37 голосов
/ 16 декабря 2009

Я ищу простой компилятор, который компилирует простой язык, мне нужно, чтобы он написал статью об этом и чтобы узнать, как работают компиляторы, я не ищу сложную вещь, просто простой язык (под простым я имею в виду маленький код, потому что, например, gcc слишком большой). любая помощь приветствуется.

Ответы [ 18 ]

2 голосов
/ 02 октября 2010

Это всего 300 строк нормального кода и реализует простой универсальный язык текст ссылки , это то, что вы искали?

1 голос
/ 22 декабря 2009

Я начал видеоурок по написанию компилятора ANTLR 3.x - посмотрите

http://javadude.com/articles/antlr3xtut

Я скоро добавлю еще! - Скотт

1 голос
/ 16 декабря 2009

Вы можете посмотреть пример калькулятора в веселой книге Бьярна Страуструпа "Язык программирования C ++".

Если вы хотите что-то более продвинутое, прочитайте исходный код boost :: spirit.

1 голос
/ 16 декабря 2009

Зависит от вашего взгляда простого. Вы можете посмотреть на один из множества доступных компиляторов BrainFuck. Это очень простой язык, и компиляторы очень маленькие. Но я не знаю, сколько это скажет вам о том, как работает «настоящий» компилятор.

А как насчет просмотра небольшого компилятора C? C не очень компилируется, и я думаю, что это даст вам некоторое представление о построении компилятора.

1 голос
/ 13 июня 2012

Вы также можете попробовать эту книгу: Элементы вычислительных систем .

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

Глава 10: Синтаксический анализ - это то, с чем вы можете работать, если намереваетесь сосредоточиться только на внешней части компилятора. Тем не менее, глава 9 должна быть предварительным условием, поскольку она описывает структуру языка высокого уровня, для которого реализован компилятор. Этот язык высокого уровня на самом деле является простым языком, подобным Java, поэтому компилятор фактически компилируется в виртуальную машину.

Лучшая часть всего этого заключается в том, что вы действительно можете следовать инструкциям и внедрять интерфейсную часть на любом языке по вашему выбору, если считаете, что это будет способствовать вашему пониманию. Это очень хорошо, если объединить его с теорией компилятора.

А мой рецензию на книгу можно найти здесь .

0 голосов
/ 16 декабря 2009

Стандартный ресурс переполнения стека для ресурсов по написанию компилятора: Обучение написанию компилятора

0 голосов
/ 02 апреля 2016

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

Была работа, чтобы сделать это еще меньше. Я не думаю, что есть какие-либо практические компиляторы, основанные на этом направлении.

Об этом стоит написать статью.

0 голосов
/ 16 декабря 2009

Brainfucked - это компилятор для очень простого языка Brainfuck .

...