НИЛ (язык программирования)
Парадигмы | Мультипарадигма : функциональная , процедурная. |
---|---|
Семья | Лисп |
Разработано | Джон Л. Уайт |
Разработчики | Джон Л. Уайт, Гай Л. Стил младший , Ричард П. Габриэль |
Впервые появился | 1979 год |
Дисциплина набора текста | динамичный , сильный |
Язык реализации | ВАКС в сборе |
Платформа | ВАКС |
ТЫ | ВАКС/ВМС |
Под влиянием | |
Лисп , Маклисп | |
Под влиянием | |
Общий Лисп , [1] Т |
Новая реализация LISP ( NIL ) — язык программирования , диалект языка Lisp , разработанный в Массачусетском технологическом институте (MIT) в 1970-х годах и призванный стать преемником языка Maclisp . [1] Это 32-битная реализация, [2] и был частично ответом на компании Digital Equipment Corporation (DEC) компьютер VAX . Проект возглавил Джон Л. Уайт, [3] с заявленной целью сохранить совместимость с MacLisp и одновременно устранить многие его проблемы.
История
[ редактировать ]Язык Лисп был изобретен в 1958 году Джоном Маккарти , когда он учился в Массачусетском технологическом институте (MIT). [4] С момента своего создания Lisp был тесно связан с искусственного интеллекта (ИИ) исследовательским сообществом , особенно в отношении систем PDP-10 . На 36-битный слова размер PDP-6 и PDP-10 повлияла полезность использования двух 18-битных указателей Лиспа в одном слове: «Проект PDP-6 начался в начале 1963 года как 24-битная машина. Для LISP она выросла до 36 бит, что и было целью разработки». [5] Lisp использовался как реализация языка программирования Micro Planner , который лег в основу знаменитой системы искусственного интеллекта SHRDLU . Лисп, в частности Maclisp (названный так потому, что он возник в рамках проекта MAC MIT), также использовался для реализации Macsyma системы компьютерной алгебры . В 1970-х годах, когда исследования ИИ породили коммерческие ответвления, производительность существующих систем Lisp стала растущей проблемой.
Частично из-за сборки мусора (Лисп будет использовать сборку мусора с остановкой и копированием своей единственной кучи для выделения памяти). [2] ) и отчасти из-за представления внутренних структур, Lisp стало трудно запускать на стандартном компьютерном оборудовании того времени с ограниченной памятью. Это привело к созданию машин Lisp : специализированного оборудования для запуска сред и программ Lisp. Альтернативой было использование более мощного стандартного аппаратного обеспечения, которое становилось доступным, особенно компании Digital Equipment Corporation (DEC) VAX .
NIL представлял собой реализацию Lisp , разработанную в Массачусетском технологическом институте в середине-конце 1970-х годов и призванную стать современным преемником Maclisp , способным работать на стандартном оборудовании. [1] в отличие от Lisp Machine Lisp для машин Lisp. [2] «Первоначально разработанный как первый современный диалект Лиспа на стандартном оборудовании после разработки Лисп-машины Лисп в Массачусетском технологическом институте, он впоследствии оказал одно из главных влияний на дизайн Common Lisp». (стр. 63/294 из [2] ) Поскольку пользователи программы Macsyma представляли собой большую потенциальную базу пользователей NIL, было необходимо, чтобы NIL была большой и сложной системой, и эта скорость была бы императивом. высокоскоростных бигнумов , поскольку при использовании медленных бигнумов NIL было бы ошибкой. Например, для поддержки Macsyma требовалось наличие [6] В результате у NIL появилась большая база ассемблерного языка VAX . Эти требования привели к очень агрессивной и сложной стратегии оптимизации, которая была применена преждевременно и привела к отрицательным результатам в конечной системе. [7]
Одновременно с написанием NIL исследовательская группа Стэнфордского университета и Ливерморской национальной лаборатории Лоуренса под руководством Ричарда П. Габриэля изучала конструкцию Lisp для работы на суперкомпьютере S-1 Mark IIA , S-1 Lisp . Этот Лисп никогда не был полностью функциональным, но был испытательной площадкой для реализации передовых методов компиляции в Лиспе. В конце концов группы S-1 и NIL начали сотрудничать.
Несмотря на то, что NIL не смог достичь своих целей в качестве используемого языка, он был важен по нескольким причинам. Во-первых, он объединил Джона Л. Уайта, Гая Л. Стила-младшего и Ричарда П. Габриэля, которые позже определили Common Lisp . [1] Во-вторых, Джонатан Рис работал над частью проекта NIL в течение года вне Йельского университета . По возвращении в Йельский университет он был нанят факультетом информатики для написания нового Lisp, который стал оптимизирующей Scheme системой T. собственного кода под названием Частично это имя породило NIL, поскольку «T не есть NIL». [7]
1958 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2020 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ЛИСП 1, 1.5, ЛИСП 2 (заброшенный) | |||||||||||||||
Маклисп | |||||||||||||||
Интерлисп | |||||||||||||||
леев | |||||||||||||||
Лисп-машина Лисп | |||||||||||||||
Схема | Р5РС | Р6РС | R7RS маленький | ||||||||||||
НОЛЬ | |||||||||||||||
ЗИЛ (язык реализации Zork) | |||||||||||||||
Франц Лисп | |||||||||||||||
Общий Лисп | стандарт ANSI | ||||||||||||||
Лисп | |||||||||||||||
Схема СО | |||||||||||||||
XLISP | |||||||||||||||
Т | |||||||||||||||
На схеме | |||||||||||||||
Эмакс Лисп | |||||||||||||||
АвтоЛИСП | |||||||||||||||
ПикоЛисп | |||||||||||||||
Гамбит | |||||||||||||||
EuLisp | |||||||||||||||
ИСЛИСП | |||||||||||||||
ОпенЛисп | |||||||||||||||
Схема PLT | Ракетка | ||||||||||||||
новыйЛИСП | |||||||||||||||
GNU Коварство | |||||||||||||||
Визуальный ЛИСП | |||||||||||||||
Клоджур | |||||||||||||||
Дуга | |||||||||||||||
ЛФЭ | |||||||||||||||
Он | |||||||||||||||
Хиалисп |
Кавычки
[ редактировать ]Зарождение и окончательный провал такого рода проектов всегда ясно видны (задним числом) в лозунгах ранних дискуссий. Одна из ключевых фраз-подсказок всегда звучит примерно так: «Мы выбросим весь старый хлам , начнем все сначала и просто будем делать все правильно».
— Олин Шиверс [7]
Ссылки
[ редактировать ]- ^ Jump up to: а б с д Стил, Гай Л. младший; Габриэль, Ричард П. «Эволюция Лиспа» (PDF) . Проверено 5 августа 2017 г.
- ^ Jump up to: а б с д Габриэль, Ричард П. (май 1985 г.). Производительность и оценка систем Lisp (PDF) . Массачусетский технологический институт Пресс ; Серия «Компьютерные системы». ISBN 978-0-262-07093-5 . LCCN 85015161 .
- ^ Питман, Кент М. «Краткая история языка Лисп» . Архивировано из оригинала 10 октября 2006 г. Проверено 12 октября 2006 г.
- ^ МакДжонс, Пол. «История ЛИСПа» . Проверено 12 октября 2006 г.
- ^ Херли, Питер Дж. Стивенс, Джек; Джонсон, Лам (ред.). «История ТОПС или жизнь в быстрых АС» . Группы Google . Проверено 28 ноября 2018 г.
- ^ Вайнреб, Дэн. «Дэн Вайнреб на НУЛЕ» . ПолГрэм.com . Проверено 28 ноября 2018 г.
- ^ Jump up to: а б с Дрожь, Олин. «Олин Шиверс: История Т» . ПолГрэм.com . Проверено 28 ноября 2018 г.
Библиография
[ редактировать ]- Брент Т. Хейлперн, Брюс Л. Хитсон. S-1 Руководство по архитектуре. Технический отчет 161 (STAN-CS-79-715), факультет электротехники, Стэнфордский университет, январь 1979 г.
- Г. Берк. Знакомство с НИЛ. Лаборатория компьютерных наук Массачусетского технологического института, март 1983 г.
- Г.С. Берк, Г.Дж. Карретт, С.Р. Элиот. Примечания NIL к выпуску 0.259, Лаборатория компьютерных наук Массачусетского технологического института, июнь 1983 г.
- Г.С. Берк, Г.Дж. Карретт, С.Р. Элиот. Справочное руководство НИЛ. Отчет MIT/LCS/TR-311, Лаборатория компьютерных наук, Массачусетский технологический институт, Кембридж, Массачусетс, 1983.
Статьи
[ редактировать ]- Стивен Коррелл. Однопроцессорная архитектура S-1 (sma-4). Том I, глава 4, Годовой отчет проекта S-1 за 1979 год, Ливерморская лаборатория Лоуренса, Ливермор, Калифорния, 1979 год.
- Джон Л. Уайт. Нил: Перспектива. Материалы конференции пользователей Macsyma 1979 г., Вашингтон, округ Колумбия, июнь 1979 г.
- Родни А. Брукс, Ричард П. Габриэль, Гай Л. Стил-младший. Реализация S-1 Common Lisp. Материалы симпозиума ACM 1982 г. по LISP и функциональному программированию, Питтсбург, 1982 г., страницы 108–113. ACM DL.
- Родни А. Брукс, Ричард П. Габриэль, Гай Л. Стил-младший. Оптимизирующий компилятор для LISP с лексической областью действия. Материалы симпозиума 1982 г. по созданию компиляторов, Бостон, июнь 1982 г., страницы 261–275. АСМ ДЛ
- Марк Смотерман. Суперкомпьютер С-1 (1975–1988). Веб-сайт, последнее обновление 24 апреля 2004 г. http://www.cs.clemson.edu/~mark/s1.html.