NIL (язык программирования) - Википедия - NIL (programming language)

Ноль
ПарадигмыМультипарадигма: функциональный, процедурный
СемьяЛисп
РазработаноДжон Л. Уайт
РазработчикиДжон Л. Уайт,
Гай Л. Стил мл.,
Ричард П. Габриэль
Впервые появился1979; 41 год назад (1979)
Печатная дисциплинадинамичный, сильный
Язык реализацииVAX сборка
ПлатформаPDP-6, PDP-10
Операционные системыТОП-10, ЭТО
Под влиянием
Лисп, Маклисп
Под влиянием
Common Lisp,[1] Т

Новая реализация LISP (Ноль) это язык программирования, а диалект языка Лисп, разработанный в Массачусетский Институт Технологий (MIT) в 1970-х годах и намеревался стать преемником языка Маклисп.[1] Это 32-битный выполнение,[2] и был частично ответом на Корпорация цифрового оборудования (DEC) VAX компьютер. Проект возглавил Джон Л. Уайт,[3] с заявленной целью поддержание совместимости с MacLisp при одновременном устранении многих его проблем.

История

В Лисп язык был изобретен в 1958 году Джон Маккарти пока он был в Массачусетский Институт Технологий (Массачусетский технологический институт).[4] С самого начала Lisp был тесно связан с искусственный интеллект (AI) исследования сообщество, особенно на PDP-10 системы. В 36-битный слово размер PDP-6 и PDP-10 на него повлияла полезность наличия двух Lisp 18-битный указатели Одним словом: «Проект PDP-6 стартовал в начале 1963 года как 24 бит машина. Он вырос до 36 бит для LISP, что было целью разработки ".[5] Лисп использовался как реализация языка программирования Micro. Планировщик это была основа знаменитой системы искусственного интеллекта ШРДЛУ. Лисп, в частности Маклисп (названный так, потому что он возник в проекте MAC Массачусетского технологического института) также использовался для реализации Macsyma система компьютерной алгебры. В 1970-х годах, когда исследования ИИ породили коммерческие ответвления, производительность существующих Lisp-систем стала растущей проблемой.

Отчасти из-за вывоз мусора (Lisp будет использовать сборку мусора с остановкой и копированием своей единственной кучи для выделение памяти[2]) и частично из-за представления внутренних структур Lisp стало трудно запускать на ограниченном памяти компьютерное железо дня. Это привело к созданию Лисп-машины: специализированное оборудование для запуска сред и программ Lisp. Альтернативой было использование более мощного серийного оборудования, которое становилось доступным, особенно Корпорация цифрового оборудования (DEC) VAX.

NIL был реализацией Лисп разработан в Массачусетском технологическом институте в середине-конце 1970-х годов и призван стать современным преемником Маклисп которая могла работать на стандартном оборудовании,[1] в отличие от Лисп-машина Лисп для машин Lisp.[2] «Первоначально разработанный как первый современный диалект Lisp на стандартном оборудовании после разработки Lisp-машины Lisp в Массачусетском технологическом институте, он стал одним из основных факторов, повлиявших на дизайн Common Lisp». (стр. 63/294 из [2]) Поскольку пользователи Macsyma Программа представляла большую потенциальную базу пользователей для NIL, было необходимо, чтобы NIL была большой и сложной системой, а скорость была бы обязательной. Например, высокоскоростной бигнумы было требованием для поддержки Macsyma, поскольку NIL не смог бы работать с медленными bignums.[6] Следовательно, NIL получил большую базу VAX. язык ассемблера. Эти требования привели к очень агрессивной и сложной стратегии оптимизации, которая была применена преждевременно, что дало отрицательные результаты в окончательной системе.[7]

Одновременно с попыткой написать NIL исследовательская группа в Стэндфордский Университет и Национальная лаборатория Лоуренса Ливермора возглавляемый Ричард П. Габриэль исследовали дизайн Лиспа для работы на S-1 Mark IIA суперкомпьютер, S-1 Лисп. Этот Лисп никогда не был полностью функциональным, но был испытательным полигоном для реализации продвинутых компилятор методы в Лиспе. В конце концов группы S-1 и NIL начали сотрудничать.

Несмотря на неудачу в достижении поставленных целей в качестве используемого языка, NIL был важен по нескольким причинам. Во-первых, он объединил Джона Л. Уайта, Гай Л. Стил мл., и Ричард П. Габриэль, которые позже определили Common Lisp.[1] Во-вторых, Джонатан Рис работал над частью проекта NIL в течение года после Йельский университет. По возвращении в Йель он был нанят Информатика отдел для написания нового Lisp, который стал оптимизирующим собственным кодом Схема система названа Т. Частично NIL породил это имя, поскольку «T не NIL».[7]

Цитаты

Генезис и возможная неудача такого рода проектов всегда отчетливо видны (в ретроспективе) в shibboleths ранних дискуссий. Одна ключевая фраза - это всегда что-то вроде: «Мы выбросим все старые хлам, начните все сначала и просто делайте все правильно ".

— Олин Шиверс[7]

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

  1. ^ а б c d Стил, Гай Л. мл .; Габриэль, Ричард П. "Эволюция Лиспа" (PDF). Получено 2017-08-05.
  2. ^ а б c d Габриэль, Ричард П. (май 1985 г.). Производительность и оценка систем Lisp (PDF). MIT Press; Серия компьютерных систем. ISBN  978-0-262-07093-5. LCCN  85015161.
  3. ^ Питман, Кент М. "Краткая история языка Лисп". Архивировано из оригинал на 2006-10-10. Получено 2006-10-12.
  4. ^ МакДжонс, Пол. "История LISP". Получено 2006-10-12.
  5. ^ Херли, Питер Дж. Стивенс, Джек; Джонсон, Лам (ред.). «История TOPS или жизнь в быстрых АС». Группы Google. Получено 2018-11-28.
  6. ^ Вайнреб, Дэн. "Дэн Вайнреб на NIL". PaulGraham.com. Получено 2018-11-28.
  7. ^ а б c Дрожит, Олин. "Олин Дрожь: История Т". PaulGraham.com. Получено 2018-11-28.

Библиография

  • Брент Т. Хейлперн, Брюс Л. Хитсон. Руководство по архитектуре S-1. Технический отчет 161 (STAN-CS-79-715), кафедра электротехники, Стэнфордский университет, январь 1979 г.
  • Г. Берк. Введение в NIL. Лаборатория компьютерных наук, Массачусетский технологический институт, март 1983 г.
  • Г.С. Берк, Г.Дж. Карретт, К.Р. Элиот. Примечания NIL к версии 0.259, Лаборатория компьютерных наук, Массачусетский технологический институт, июнь 1983 г.
  • Г.С. Берк, Г.Дж. Карретт, К. Р. Элиот. Справочное руководство 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