MDL ( язык разработки моделей , [1] или в разговорной речи также называемый More Datatypes than Lisp [2] : 3 или MIT Design Language [ требуется ссылка ] ) — язык программирования , потомок языка Lisp . Его первоначальной целью было обеспечение поддержки языка высокого уровня для группы динамического моделирования в проекте MAC Массачусетского технологического института (MIT) . [3] Он был разработан в 1971 году на PDP-10 под управлением ITS и позже работал на TENEX , TOPS-20 , [4] [5] BSD , [2] : 6 и AEGIS . [6]
Первоначальная команда разработчиков состояла из Джеральда Сассмана и Карла Хьюитта из Лаборатории искусственного интеллекта, а также Криса Рива, Брюса Дэниелса и Дэвида Кресси из Группы динамического моделирования. Позже Стю Гэлли, также из Группы динамического моделирования, написал документацию MDL. [ необходима цитата ]
MDL изначально назывался Muddle . [4] : 2 Этот стиль самоуничижительного юмора не был широко понят или оценен за пределами Project MAC. Поэтому название было смягчено до MDL. [ необходима цитата ]
MDL предоставляет несколько улучшений классического Lisp. Он поддерживает несколько встроенных типов данных, включая списки, строки и массивы, а также определяемые пользователем типы данных. Он предлагает многопоточное вычисление выражений и сопрограммы . Переменные могут нести как локальное значение в пределах области действия, так и глобальное значение для передачи данных между областями действия. Расширенные встроенные функции поддерживают интерактивную отладку программ MDL, инкрементальную разработку и реконструкцию исходных программ из объектных программ.
Хотя MDL устарел, некоторые из его функций были включены в более поздние версии Lisp. Джеральд Сассман продолжил разработку языка Scheme в сотрудничестве с Гаем Стилом , который позже написал спецификации для Common Lisp и Java . Карл Хьюитт уже опубликовал идею языка Planner до начала проекта MDL, но его последующие размышления о Planner отражали уроки, извлеченные из создания MDL. Концепции Planner повлияли на такие языки, как Prolog и Smalltalk . Smalltalk и Simula , в свою очередь, повлияли на будущую работу Хьюитта над моделью акторов .
Но наибольшее влияние MDL оказал на программный жанр интерактивной фантастики (IF). Игра IF под названием Zork , иногда называемая Dungeon, была впервые написана на MDL. [7] Позже Рив, Дэниелс, Гэлли и другие члены Dynamic Modeling основали Infocom , компанию, которая выпустила множество ранних коммерческих произведений интерактивной фантастики.
В 1980 году Марк Бланк и Джоэл Берез адаптировали язык MDL для создания подмножества под названием ZIL ( Zork Implementation Language ), которое широко использовалось компанией Infocom для создания своих отмеченных наградами игр.
Это образец PDP-10 MDL: [8] [9] [10]
<DEFINE EXIT-TO ( EXITS RMS ) # DECL (( EXITS ) EXIT ( RMS ) <UVECTOR [ REST ROOM ] > ) <MAPF <> <FUNCTION ( E ) # DECL (( E ) <ИЛИ НАПРАВЛЕНИЕ ROOM CEXIT NEXIT DOOR> ) <COND ( <TYPE? .E DIRECTION> ) ( <AND <TYPE? .E ROOM> <MEMQ .E .RMS>> <MAPLEAVE T> ) ( <AND <TYPE? .E CEXIT> <MEMQ <2 .E> .RMS>> <MAPLEAVE T> ) ( <AND <TYPE? .E DOOR> <OR <MEMQ <DROOM1 .E> .RMS> <MEMQ <DROOM2 .E> .RMS>>> <MAPLEAVE T> ) >> .ВЫХОДЫ>>