MDL (язык программирования) - MDL (programming language)
Парадигмы | Мультипарадигма: функциональный, процедурный, отражающий, мета |
---|---|
Семья | Лисп |
Разработано | Джеральд Сассман, Карл Хьюитт, Крис Рив, Брюс Дэниелс |
Разработчик | Массачусетский технологический институт Проект MAC |
Впервые появился | 1971 |
Окончательный релиз | 105 / 1980 |
Печатная дисциплина | Динамический, сильный |
Объем | Статический, лексический |
Язык реализации | Лей |
Платформа | PDP-10, VAX, Аполлон / Домен |
Операционные системы | ЭТО, Техас, ТОП-20, BSD, AEGIS |
Лицензия | Открытый исходный код |
Под влиянием | |
Лисп | |
Под влиянием | |
Планировщик, Схема, Common Lisp, Ява, Пролог, Болтовня; актерская модель, интерактивная фантастика |
Лей (Язык разработки моделей[1] или же Больше типов данных, чем в Лиспе[2]:3 или же Язык дизайна MIT[нужна цитата ]) это язык программирования, потомок языка Лисп. Его первоначальная цель заключалась в обеспечении языковой поддержки высокого уровня для группы динамического моделирования на Массачусетский Институт Технологий (MIT) Проект MAC.[3] Первоначально он был разработан в 1971 году на PDP-10 компьютер на совместное времяпровождение Операционная система названный Несовместимая система разделения времени (ЭТО). Позже он работал Техас, ТОП-20,[4][5] BSD,[2]:6 и AEGIS.[6]
Первоначальная команда разработчиков состояла из Джеральд Сассман и Карл Хьюитт из лаборатории искусственного интеллекта и Крис Рив, Брюс Дэниэлс и Дэвид Кресси из группы динамического моделирования. Позже Стю Галлей, также из Группы динамического моделирования, написал документацию по MDL.[нужна цитата ]
MDL изначально назывался Путаница.[4]:2 Этот стиль самоуничижительного юмора не был широко понят и оценен за пределами Project MAC и нескольких других ранних цитаделей информационных технологий. Таким образом, название было изменено на MDL.[нужна цитата ]
MDL предоставляет несколько улучшений классического Лиспа. Он поддерживает несколько встроенных типов данных, включая списки, строки и массивы, а также типы данных, определяемые пользователем. Это предлагает многопоточный оценка выражений и сопрограммы. Переменные может нести как локальное значение в пределах области, так и глобальное значение для передачи данных между областями. Расширенные встроенные функции поддерживаются интерактивно отладка программ молдавского лей, инкрементального разработка, и реконструкция исходных программ из объектных программ.
Хотя MDL устарел, некоторые из его функций были включены в более поздние версии Lisp. Джеральд Сассман продолжил разработку Схема язык, в сотрудничестве с Гай Стил, который позже написал спецификации для Common Lisp и Ява. Карл Хьюитт уже опубликовал идею языка Планировщик еще до начала проекта MDL, но его последующие размышления о Planner отражали уроки, извлеченные из построения MDL. Концепции планировщика повлияли на такие языки, как Пролог и Болтовня. Smalltalk и Симула, в свою очередь, повлияли на дальнейшую работу Хьюитта над актерская модель.
Но наибольшее влияние MDL оказал на программного обеспечения жанр интерактивная фантастика (ЕСЛИ). Игра IF под названием Зорк, иногда называемый Dungeon, впервые был написан на MDL.[7] Позже Рив, Дэниелс, Гэлли и другие участники динамического моделирования начали Инфоком, компания, которая произвела много ранних коммерческий произведения интерактивной фантастики.
Пример кода
Это образец PDP-10 MDL:[8][9][10]
<ОПРЕДЕЛЯТЬ ВЫХОД-К (ВЫХОДЫ RMS) #DECL ((ВЫХОДЫ) ВЫХОД (RMS) <УФЕКТОР [ОТДЫХ КОМНАТА]>) <МАПФ <> <НАЗНАЧЕНИЕ (E) #DECL ((E) <ИЛИ ЖЕ НАПРАВЛЕНИЕ КОМНАТА CEXIT ДАЛЕЕ ДВЕРЬ>) <COND (<ТИП? .E НАПРАВЛЕНИЕ>) (<И <ТИП? .E НОМЕР> <MEMQ .E .RMS>> <КЛЕН Т>) (<И <ТИП? .E CEXIT> <MEMQ <2 .E> .RMS>> <КЛЕН Т>) (<И <ТИП? .E ДВЕРЬ> <ИЛИ ЖЕ <MEMQ <DROOM1 .E> .RMS> <MEMQ <DROOM2 .E> .RMS>>> <КЛЕН Т>)>> .ВЫХОДЫ>>
Смотрите также
Рекомендации
- ^ Супник, Боб (25 октября 2006 г.). "GET LAMP Интервью с Бобом Супником" (Опрос). Беседовал Джейсон Скотт. 15:00.
- ^ а б Ликлидер, J.C.R (январь 1988 г.). «Графическое программирование и мониторинг RADC-TR-88-7» (PDF). Римский центр развития воздуха. Получено 2019-05-18.
- ^ Дорнбрук, Майкл; Бланк, Марк (1980). "Праймер для программирования MDL MIT-LCS-TR-292" (PDF). Массачусетский технологический институт, лаборатория компьютерных наук. Получено 2019-05-18.
- ^ а б Галлей, Стю В .; Пфистер, Грег (1979). "Язык программирования MDL" (PDF). Массачусетский технологический институт, лаборатория компьютерных наук. Получено 2018-12-18.
- ^ Леблинг, П. Дэвид (май 1980 г.). "Среда программирования MDL" (PDF). Массачусетский технологический институт, лаборатория компьютерных наук. Получено 2018-12-18.
- ^ Лим, Пох Чуан (1982). «Независимый от устройства менеджер графики для MDL» (PDF). Массачусетский Институт Технологий. п. 69. Получено 2019-05-18.
- ^ Дайер, Ричард (1984-05-06). «Мастера игры». Бостонский глобус. Архивировано из оригинал на 1997-06-07.
- ^ "Zork-mdl.zip".
- ^ Супник, Боб (04.06.2018). «Комплекты программного обеспечения». Компьютерное моделирование и история (SimH). Bitsavers.org. Получено 2018-12-18.
- ^ Супник, Боб (2007-09-02). «Комплекты программного обеспечения». Компьютерное моделирование и история (SimH). Форум PDP-11. Получено 2018-12-18.