Парадигмы | Мультипарадигма : функциональный, процедурное |
---|---|
Семейство | Лисп |
Разработано | Джоном Л. Уайтом |
Разработчики | Джон Л. Уайт,. Гай Л. Стил-младший,. Ричард П. Габриэль |
Впервые появилось | 1979; 41 год назад (1979) |
Дисциплина набора текста | динамический, сильный |
Язык реализации | VAX ассемблер |
Платформа | PDP-6, PDP-10 |
OS | TOPS-10, ITS |
Под влиянием | |
Lisp, Maclisp | |
Под влиянием | |
Common Lisp,T |
Новая реализация LISP (NIL ) - это язык программирования, диалект языка Lisp, разработанный в Массачусетский технологический институт (MIT) в течение 1970-х годов, который должен был стать преемником языка Maclisp. Это 32-битная реализация, частично являющаяся ответом на компьютер Digital Equipment Corporation (DEC) VAX. Проект возглавил Джон Л. Уайт с заявленной целью поддерживать совместимость с MacLisp при одновременном исправлении многих его проблем.
Был изобретен язык Lisp в 1958 году Джоном Маккарти, когда он учился в Массачусетском технологическом институте (MIT). С самого начала Lisp был тесно связан с сообществом по исследованиям искусственного интеллекта (AI) сообществом, особенно с системами PDP-10. На размер 36-битного слова в PDP-6 и PDP-10 повлияла полезность наличия двух Lisp 18-битные указатели одним словом: «Проект PDP-6 стартовал в начале 1963 года как 24-битная машина. Он вырос до 36 бит для LISP, цель дизайна ". Лисп использовался как реализация языка программирования Micro Planner, который лег в основу знаменитой системы ИИ SHRDLU. Лисп, в частности Maclisp (названный так, потому что он возник в проекте MAC Массачусетского технологического института), также использовался для реализации системы компьютерной алгебры Macsyma . В 1970-х годах, когда исследования ИИ породили коммерческие ответвления, производительность существующих Lisp-систем стала растущей проблемой.
Отчасти из-за сборки мусора (Lisp будет использовать сборку мусора с остановкой и копированием своей единственной кучи для выделения памяти ) и отчасти из-за представления внутренней памяти. структур, Лисп стало трудно запускать на ограниченном по памяти компьютерном оборудовании того времени. Это привело к созданию машин на Лиспе : специализированного оборудования для запуска сред и программ Лиспа. Альтернативой было использование более мощного серийного оборудования, которое становилось доступным, особенно Digital Equipment Corporation (DEC) VAX.
NIL, реализация Lisp, разработанная в Массачусетский технологический институт в середине-конце 1970-х годов и задумывался как современный преемник Maclisp, который мог работать на стандартном оборудовании, в отличие от Lisp Machine Lisp для машин Lisp. «Первоначально разработанный как первый современный диалект Lisp на стандартном оборудовании после разработки Lisp-машины Lisp в Массачусетском технологическом институте, он стал одним из главных факторов, повлиявших на дизайн Common Lisp». (стр. 63/294 из) Поскольку пользователи программы Macsyma представляют большую потенциальную базу пользователей NIL, было необходимо, чтобы NIL была большой и сложной системой, а скорость была бы обязательной. Например, высокоскоростной bignums был требованием для поддержки Macsyma, так как NIL будет ошибкой с медленными bignums. Следовательно, NIL получил большую базу VAX язык ассемблера. Эти требования привели к очень агрессивной и сложной стратегии оптимизации, которая была применена преждевременно, с отрицательными результатами в окончательной системе.
Одновременно с попыткой написать NIL, исследовательская группа в Стэнфордском университете и Ливерморская национальная лаборатория, возглавляемая Ричардом П. Габриэлем, исследовали дизайн Лиспа для работы на суперкомпьютере S-1 Mark IIA , S-1 Лисп. Этот Лисп никогда не был полностью функциональным, но был испытательной площадкой для реализации передовых методов компилятора в Лиспе. В конце концов группы S-1 и NIL начали сотрудничать.
Несмотря на неудачу в достижении поставленных целей в качестве используемого языка, NIL был важен по нескольким причинам. Сначала он объединил Джона Л. Уайта, Гая Л. Стила-младшего и Ричарда П. Габриэля, которые позже дали определение Common Lisp. Во-вторых, Джонатан Рис работал над частью проекта NIL в течение года вне Йельского университета. По возвращении в Йельский университет он был нанят отделом информатики для написания нового Lisp, который стал оптимизирующей системой с собственным кодом Scheme под названием T. Частично это название произошло от NIL, поскольку «T - это не NIL».
Происхождение и возможный провал такого рода проектов всегда ясно видны (в ретроспективе) в шибболетах из ранних дискуссий. Одна ключевая подсказка - это всегда что-то вроде: «Мы выбросим все старые хлам, начнем заново и просто будем делать все правильно».
— Олин Шиверс