Теоретические основы Лисп

Я только начал изучать диалект lisp ( Racket), и я хотел бы знать, есть ли у кого-нибудь ссылка или она может указать мне на теоретические основы семейства языков lisp, под ресурсами я подразумеваю статьи, статьи или книги все, что вы могли придумать.

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

Мне интересны основы, потому что мне нравится объяснять, как все работает другим.

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

6 ответов

Решение

Вы можете начать с самого начала: http://www-formal.stanford.edu/jmc/recursive.html

Я бы также добавил "Следующие 700 языков программирования" Ландена в этот список; где Маккарти раскрывает понятие программ, интерпретирующих другие программы, Лэндин показывает, как одна и та же теоретическая структура может служить основой почти для всех языков программирования.

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

У Пола Грэма есть несколько хороших мини-статей по истории Lisp: http://www.paulgraham.com/lisp.html

Не пропустите оригинальные лямбда-статьи Гая Стила и Джеральда Суссмана.

  • "Лямбда: высший императив"
  • "Лямбда: окончательный декларативный"
  • "Лямбда: окончательное GOTO"
Другие вопросы по тегам