NIL (язык программирования) - Википедия - NIL (programming language)
Парадигмы | Мультипарадигма: функциональный, процедурный |
---|---|
Семья | Лисп |
Разработано | Джон Л. Уайт |
Разработчики | Джон Л. Уайт, Гай Л. Стил мл., Ричард П. Габриэль |
Впервые появился | 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]
1955 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2020 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
LISP 1, 1.5, LISP 2(заброшенный) | ||||||||||||||
Маклисп | ||||||||||||||
Интерлисп | ||||||||||||||
Лисп-машина Лисп | ||||||||||||||
Схема | R5RS | R6RS | R7RS маленький | |||||||||||
Ноль | ||||||||||||||
Ференц Лисп | ||||||||||||||
Common Lisp | ||||||||||||||
Le Lisp | ||||||||||||||
Т | ||||||||||||||
Chez Scheme | ||||||||||||||
Emacs Lisp | ||||||||||||||
AutoLISP | ||||||||||||||
ПикоЛисп | ||||||||||||||
EuLisp | ||||||||||||||
ISLISP | ||||||||||||||
OpenLisp | ||||||||||||||
Схема PLT | Ракетка | |||||||||||||
GNU Guile | ||||||||||||||
Визуальный LISP | ||||||||||||||
Clojure | ||||||||||||||
Дуга | ||||||||||||||
LFE | ||||||||||||||
Hy |
Цитаты
Генезис и возможная неудача такого рода проектов всегда отчетливо видны (в ретроспективе) в shibboleths ранних дискуссий. Одна ключевая фраза - это всегда что-то вроде: «Мы выбросим все старые хлам, начните все сначала и просто делайте все правильно ".
— Олин Шиверс[7]
Рекомендации
- ^ а б c d Стил, Гай Л. мл .; Габриэль, Ричард П. "Эволюция Лиспа" (PDF). Получено 2017-08-05.
- ^ а б c d Габриэль, Ричард П. (май 1985 г.). Производительность и оценка систем Lisp (PDF). MIT Press; Серия компьютерных систем. ISBN 978-0-262-07093-5. LCCN 85015161.
- ^ Питман, Кент М. "Краткая история языка Лисп". Архивировано из оригинал на 2006-10-10. Получено 2006-10-12.
- ^ МакДжонс, Пол. "История LISP". Получено 2006-10-12.
- ^ Херли, Питер Дж. Стивенс, Джек; Джонсон, Лам (ред.). «История TOPS или жизнь в быстрых АС». Группы Google. Получено 2018-11-28.
- ^ Вайнреб, Дэн. "Дэн Вайнреб на NIL". PaulGraham.com. Получено 2018-11-28.
- ^ а б 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