Подтвердить что ты не робот

Lisp дизайн компилятора

Я ищу книгу для составления компилятора. Я изучаю его в колледже; но лекции никогда не были предназначены для меня. Более того, в моем колледже они не очень практичны, и я считаю, что даже если я искренне буду заниматься курсом о конечных автоматах и ​​дизайне компилятора, я не буду знать, как реализовать компилятор. Итак, я ищу книги о реализации компилятора. Я считаю, что "Современная реализация компилятора" хороша. У него было три варианта языка, и я выбрал книгу C, потому что C, являющийся небольшим языком, для меня будет больше, и я буду учиться во время занятий. Тем не менее, я хотел изучить курс разработки компилятора для Lisp или python [может быть на одном языке]; но я не мог найти много материала. Lisp - это старый язык и должна быть документация о разработке для него компилятора. Мне нужны ваши предложения по этому поводу.

Спасибо.

4b9b3361

Ответ 1

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

Я также рекомендовал бы Парадигмы программирования искусственного интеллекта, тематические исследования в общем Lisp Питера Норвига. Он содержит описание компилятора Схемы, записанного в Common Lisp. Как правило, это замечательная книга.

Также см. эту Библиографию в Методы внедрения схемы.

Для Common Lisp доступны статьи и некоторые компиляторы Common Lisp поставляются с небольшим количеством документации по внедрению и внутренним компонентам компилятора. Обычно компилятор нельзя рассматривать изолированно, но его следует рассматривать в сочетании с исполняемой средой, с которой он компилируется (GC, наборы инструкций, управление памятью в целом, потоки, интерфейсы FFI,...). См., Например, Проект CMU Common Lisp.

Ответ 3

Это не совсем для Lisp, но для Scheme (a lisp производная), но мы использовали этот свободный (как в пиве) текст в моем классе языков программирования. Здесь ссылка:

http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/

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

Ответ 4

Я никогда не читал его, но в свое время была книга под названием "Lisp в Small Pieces", которая должна была быть очень хороша для ваших целей.

Ответ 5

Изучите эти книги в порядке:

Как только ваша базовая система Lisp работает, возможно, вам захочется реализовать "специализированные языки" поверх нее. Тогда книги, такие как Искусство метаобъектного протокола, становятся важной ссылкой.