Новая реализация LISP ( NIL ) - это язык программирования , диалект языка Lisp , разработанный в Массачусетском технологическом институте (MIT) в 1970-х годах и призванный стать преемником языка Maclisp . [1] Это 32-битная реализация, [2] отчасти ответ на компьютер VAX компании Digital Equipment Corporation (DEC) . Проект возглавил Джон Л. Уайт [3] с заявленной целью поддерживать совместимость с MacLisp при одновременном устранении многих его проблем.
Парадигмы | Мультипарадигма : функциональная , процедурная |
---|---|
Семья | Лисп |
Разработано | Джон Л. Уайт |
Разработчики | Джон Л. Уайт, Гай Л. Стил младший , Ричард П. Габриэль |
Впервые появился | 1979 |
Печатная дисциплина | динамичный , сильный |
Язык реализации | Сборка VAX |
Платформа | ПДП-6 , ПДП-10 |
Операционные системы | ТОПС-10 , ЕГО |
Под влиянием | |
Лисп , Маклисп | |
Под влиянием | |
Common Lisp , [1] T |
История
Язык Лисп был изобретен в 1958 году Джоном Маккарти, когда он работал в Массачусетском технологическом институте (MIT). [4] С самого начала Lisp был тесно связан с сообществом исследователей искусственного интеллекта (AI) , особенно в отношении систем PDP-10 . На 36-битный размер слова PDP-6 и PDP-10 повлияла полезность наличия двух 18-битных указателей Lisp в одном слове: «Проект PDP-6 стартовал в начале 1963 года как 24-битная машина. Он вырос до 36 бит для LISP, что было целью разработки ". [5] Lisp использовался как реализация языка программирования Micro Planner, который лег в основу известной системы искусственного интеллекта SHRDLU . Лисп, в частности Maclisp (названный так, потому что он возник в проекте MAC Массачусетского технологического института), также использовался для реализации системы компьютерной алгебры Macsyma . В 1970-х годах, когда исследования ИИ породили коммерческие ответвления, производительность существующих Lisp-систем стала растущей проблемой.
Частично из-за сборки мусора (Lisp будет использовать сборку мусора с остановкой и копированием для выделения памяти [2] ), а частично из-за представления внутренних структур Lisp стало трудно запускать на стандартном компьютерном оборудовании с ограниченным объемом памяти. дня. Это привело к созданию машин на Лиспе : специализированного оборудования для запуска сред и программ Лиспа. Альтернативой было использование более мощного серийного оборудования, которое становилось доступным, особенно VAX от Digital Equipment Corporation (DEC) .
NIL был реализацией Лиспа, разработанной в Массачусетском технологическом институте в середине-конце 1970-х годов, и должен был стать современным преемником Maclisp, который мог работать на стандартном оборудовании [1], в отличие от Lisp Machine Lisp для машин Lisp. [2] «Первоначально разработанный как первый современный диалект Lisp на стандартном оборудовании после разработки Lisp-машины Lisp в Массачусетском технологическом институте, он стал одним из основных факторов, повлиявших на дизайн Common Lisp». (стр. 63/294 из [2] ) Поскольку пользователи программы Macsyma представляют большую потенциальную базу пользователей для NIL, было необходимо, чтобы NIL была большой и сложной системой, а скорость была бы обязательной. Например, высокоскоростные bignums были требованием для поддержки Macsyma, так как NIL не смог бы работать с медленными bignums. [6] Следовательно, NIL получил большую базу ассемблера VAX . Эти требования привели к очень агрессивной и сложной стратегии оптимизации, которая была применена преждевременно, что дало отрицательные результаты в окончательной системе. [7]
Одновременно с попыткой написать NIL исследовательская группа из Стэнфордского университета и Ливерморской национальной лаборатории Лоуренса, возглавляемая Ричардом П. Габриэлем, исследовала дизайн Лиспа для работы на суперкомпьютере S-1 Mark IIA , S-1 Lisp . Этот Лисп никогда не был полностью функциональным, но был испытательной площадкой для реализации передовых методов компилятора в Лиспе. В конце концов группы S-1 и NIL начали сотрудничать.
Несмотря на неудачу в достижении поставленных целей в качестве используемого языка, NIL был важен по нескольким причинам. Во-первых, он объединил Джона Л. Уайта, Гая Л. Стила-младшего и Ричарда П. Габриэля, которые позже дали определение Common Lisp . [1] Во-вторых, Джонатан Рис работал над частью проекта NIL в течение года вне Йельского университета . По возвращении в Йельском университете, он был принят на работу информатики отдела написать новый Lisp, который стал оптимизирующий, нативный код Схема системы с именем T . Частично NIL породил это имя, поскольку «T не NIL». [7]
Кавычки
Генезис и возможная неудача такого рода проектов всегда ясно видны (в ретроспективе) в тезисах ранних дискуссий. Одна ключевая фраза-подсказка всегда имеет форму: «Мы выбросим весь старый мусор , начнем заново и просто будем делать все правильно».
- Олин Шиверс [7]
Рекомендации
- ^ a b c d Стил, Гай Л. Младший; Габриэль, Ричард П. «Эволюция Лиспа» (PDF) . Проверено 5 августа 2017 .
- ^ а б в г Габриэль, Ричард П. (май 1985 г.). Производительность и оценка систем Lisp (PDF) . MIT Press ; Серия компьютерных систем. ISBN 978-0-262-07093-5. LCCN 85015161 .
- ^ Питман, Кент М. "Краткая история языка Лисп" . Архивировано из оригинала на 2006-10-10 . Проверено 12 октября 2006 .
- ^ МакДжонс, Пол. «История LISP» . Проверено 12 октября 2006 .
- ^ Херли, Питер Дж. Стивенс, Джек; Джонсон, Лам (ред.). «История ТОПов или Жизнь в быстрых АС» . Группы Google . Проверено 28 ноября 2018 .
- ^ Вайнреб, Дэн. "Дэн Вайнреб на NIL" . PaulGraham.com . Проверено 28 ноября 2018 .
- ^ а б в Дрожит, Олин. "Олин Дрожь: История Т" . PaulGraham.com . Проверено 28 ноября 2018 .
Библиография
- Брент Т. Хейлперн, Брюс Л. Хитсон. Руководство по архитектуре S-1. Технический отчет 161 (STAN-CS-79-715), кафедра электротехники, Стэнфордский университет, январь 1979 г.
- Г. Берк. Введение в NIL. Лаборатория компьютерных наук, Массачусетский технологический институт, март 1983 г.
- GS Burke, GJ Carrette, CR Eliot. Примечания NIL к версии 0.259, Лаборатория компьютерных наук, Массачусетский технологический институт, июнь 1983 г.
- GS Burke, GJ Carrette, CR Eliot. Справочное руководство NIL. Отчет MIT / LCS / TR-311, Лаборатория компьютерных наук, Массачусетский технологический институт, Кембридж, Массачусетс, 1983.
Статьи
- Стивен Коррелл. Однопроцессорная архитектура С-1 (СМА-4). Том I, глава 4, Годовой отчет проекта S-1 за 1979 год, Ливерморская лаборатория Лоуренса, Ливермор, Калифорния, 1979.
- Джон Л. Уайт. Нил: Перспектива. Материалы конференции пользователей Macsyma 1979 г., Вашингтон, округ Колумбия, июнь 1979 г.
- Родни А. Брукс, Ричард П. Габриэль, Гай Л. Стил мл. Реализация Common Lisp S-1. Материалы симпозиума ACM 1982 г. по LISP и функциональному программированию, Питтсбург, 1982 г., стр. 108–113. ACM DL
- Родни А. Брукс, Ричард П. Габриэль, Гай Л. Стил мл. Оптимизирующий компилятор для LISP с лексической областью видимости. Труды симпозиума 1982 г. по созданию компиляторов, Бостон, июнь 1982 г., страницы 261-275. ACM DL
- Марк Смотерман. Суперкомпьютер С-1 (1975–1988). Веб-сайт, последнее обновление - 24 апреля 2004 г. http://www.cs.clemson.edu/~mark/s1.html