- «MLisp» - это также другое название Mocklisp , урезанной версии Lisp, используемой в качестве языка расширения в Gosling Emacs .
MLISP - это вариант Lisp с синтаксисом, подобным Algol, основанным на M-выражениях , которые были функциональным синтаксисом в исходном описании Lisp Джоном Маккарти . М-выражения Маккарти никогда не были реализованы в точной форме. [1]
MLISP впервые была реализована для IBM 360 по Horace Enea , а затем переписана для PDP 10 Дэвид Canfield Смит. Эта вторая реализация также поддерживает особый вид лямбда-выражений (« FEXPR »), которые не оценивают свои аргументы. Как и в Lisp-1 или Scheme , было единое пространство имен для переменных и функций. [2]
В то время как MLISP был просто препроцессором с альтернативным, более удобным для чтения синтаксисом для Lisp, потомок MLISP 2 представил новые концепции: [3]
- интерактивная интерпретация программ вместо компиляции
- расширяемость с помощью языка описания синтаксиса (см. гигиенические макросы )
- сопоставление с образцом
- возврат с использованием замыканий в стеке и индексов для продолжений [4]
MLISP2 авторы назвали переходным языком. Ларри Теслер улучшил систему сопоставления с образцом, чтобы реализовать язык-преемник под названием LISP70 , который был доработан до предварительной версии. Хотя этот путь эволюции LISP широко игнорируется, он напоминает некоторые особенности, позже обнаруженные в ML или Scheme. [5]
M-LISP (MetaLISP) Роберта Мюллера - несвязанный язык 1989–1992 гг. Это был «гибрид M-экспрессии LISP и Scheme ». [6] [7]
Пример
MLISP2 / LISP70
M-LISP
Смотрите также
Было несколько реализаций Лиспа с инфиксной нотацией и языков, подобных Lisp, или языков, производных от Лиспа. Вот некоторые известные примеры:
- Дилан , которая возникла в компании Apple «s Newton проекта
- CGOL
- David A. Moon «s УЧАСТОК
- Проект S-выражений Readable Lisp , ранее называвшийся Sweet Expressions
- Обзор синтаксиса LISP Infix, автор Xah Lee
Рекомендации
- ^ Энеа, Гораций (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 . DOI : 10.1145 / 133233.133254 .
- ^ Мюллер, Роберт (1989). MetaLISP: независимый от представления диалект LISP с редукционной семантикой (кандидатская диссертация).