МЛисп
Эта статья включает список литературы , связанную литературу или внешние ссылки , но ее источники остаются неясными, поскольку в ней отсутствуют встроенные цитаты . ( Апрель 2020 г. ) |
- «MLisp» — это также другое название Mocklisp , урезанной версии Lisp, используемой в качестве языка расширения в Gosling Emacs .
MLISP — это вариант Lisp с синтаксисом, подобным Algol, основанным на M-Expressions , которые были синтаксисом функций в оригинальном описании Lisp Джоном Маккарти . М-выражения Маккарти никогда не были реализованы в точной форме. [1]
MLISP был впервые реализован для IBM 360 Хорасом Энеа , а затем повторно реализован для PDP 10 Дэвидом Кэнфилдом Смитом. Эта вторая реализация также поддерживает специальный вид лямбда-выражений (« FEXPR »), которые не оценивают свои аргументы. Как и в Lisp-1 или Scheme , для переменных и функций было единое пространство имен. [2]
В то время как MLISP был всего лишь препроцессором с альтернативным, более удобным для чтения синтаксисом Lisp, потомок MLISP 2 представил новые концепции: [3]
- интерактивная интерпретация программ вместо компиляции
- расширяемость с помощью языка описания синтаксиса (см. гигиенические макросы )
- сопоставление с образцом
- возврат с использованием замыканий в стеке и индексов для продолжений [4]
Авторы назвали MLISP2 переходным языком. Ларри Теслер усовершенствовал систему сопоставления с образцом, чтобы реализовать язык-преемник под названием LISP70 , который был доработан лишь до предварительной версии. Хотя этот путь эволюции LISP широко игнорируется, он напоминает некоторые особенности, позже обнаруженные в ML или Scheme. [5]
M-LISP (MetaLISP) Роберта Мюллера — неродственный язык 1989–1992 годов. Это был «гибрид М-выражений LISP и Scheme ». [6] [7]
См. также [ править ]
Было множество реализаций Lisp с инфиксной записью и Lisp-подобных или производных от Lisp языков. Некоторые известные примеры включают в себя:
Ссылки [ править ]
- ^ Энеа, Гораций (1968) MLISP CS-TR-68-92.pdf
- ^ Смит, Дэвид Кэнфилд (1970) РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ MLISP Smith-MLISP-AIM-84.pdf (рекомендуется в первую очередь)
- ^ Смит, Дэвид Кэнфилд и Энеа, Гораций Дж. (1973) MLISP 2 CS-TR-73-356.pdf
- ^ Смит, Дэвид Кэнфилд и Энеа, Хорас Дж. (1973) Обратный поиск в MLISP2: эффективный метод обратного отслеживания для LISP 074.pdf
- ^ Теслер, Лоуренс Г., Смит, Дэвид Кэнфилд и Энеа, Гораций Дж. (1973) Система сопоставления шаблонов LISP70 073.pdf
- ^ Мюллер, Роберт (октябрь 1992 г.). «M-LISP: независимый от представления диалект LISP с редукционной семантикой» . Транзакции ACM в языках и системах программирования . 14 (4): 589–616. CiteSeerX 10.1.1.40.4948 . дои : 10.1145/133233.133254 .
- ^ Мюллер, Роберт (1989). MetaLISP: независимый от представления диалект LISP с редукционной семантикой (кандидатская диссертация).