MDL (язык программирования) - MDL (programming language)

Лей
ПарадигмыМультипарадигма: функциональный, процедурный, отражающий, мета
СемьяЛисп
РазработаноДжеральд Сассман, Карл Хьюитт, Крис Рив, Брюс Дэниелс
РазработчикМассачусетский технологический институт Проект MAC
Впервые появился1971; 49 лет назад (1971)
Окончательный релиз
105 / 1980; 40 лет назад (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>>>                         <КЛЕН Т>)>>               .ВЫХОДЫ>>

Смотрите также

Рекомендации

  1. ^ Супник, Боб (25 октября 2006 г.). "GET LAMP Интервью с Бобом Супником" (Опрос). Беседовал Джейсон Скотт. 15:00.
  2. ^ а б Ликлидер, J.C.R (январь 1988 г.). «Графическое программирование и мониторинг RADC-TR-88-7» (PDF). Римский центр развития воздуха. Получено 2019-05-18.
  3. ^ Дорнбрук, Майкл; Бланк, Марк (1980). "Праймер для программирования MDL MIT-LCS-TR-292" (PDF). Массачусетский технологический институт, лаборатория компьютерных наук. Получено 2019-05-18.
  4. ^ а б Галлей, Стю В .; Пфистер, Грег (1979). "Язык программирования MDL" (PDF). Массачусетский технологический институт, лаборатория компьютерных наук. Получено 2018-12-18.
  5. ^ Леблинг, П. Дэвид (май 1980 г.). "Среда программирования MDL" (PDF). Массачусетский технологический институт, лаборатория компьютерных наук. Получено 2018-12-18.
  6. ^ Лим, Пох Чуан (1982). «Независимый от устройства менеджер графики для MDL» (PDF). Массачусетский Институт Технологий. п. 69. Получено 2019-05-18.
  7. ^ Дайер, Ричард (1984-05-06). «Мастера игры». Бостонский глобус. Архивировано из оригинал на 1997-06-07.
  8. ^ "Zork-mdl.zip".
  9. ^ Супник, Боб (04.06.2018). «Комплекты программного обеспечения». Компьютерное моделирование и история (SimH). Bitsavers.org. Получено 2018-12-18.
  10. ^ Супник, Боб (2007-09-02). «Комплекты программного обеспечения». Компьютерное моделирование и история (SimH). Форум PDP-11. Получено 2018-12-18.

внешняя ссылка