Парадигмы | Мультипарадигмальный : функциональный , процедурный , рефлексивный , мета , параллельный |
---|---|
Семья | Лисп |
Разработано | Клифф Лассер, Стив Омохундро |
Разработчик | Корпорация «Мыслящие машины» |
Впервые появился | 1986 ( 1986 ) |
Дисциплина набора текста | Динамичный , сильный |
Объем | Статический, лексический |
Язык реализации | Общий Лисп |
Платформа | Машина для соединения |
ОС | Машина для соединения |
Под влиянием | |
Лисп , Общий Лисп | |
Под влиянием | |
С* |
*Lisp (или StarLisp ) — язык программирования , диалект языка Lisp . [1] Он был задуман в 1985 году двумя сотрудниками Thinking Machines Corporation , Клиффом Лассером и Стивом Омохундро , как способ предоставить эффективный, но высокоуровневый язык для программирования зарождающейся Connection Machine (CM).
В то время, когда Connection Machine проектировалась и строилась, единственным активно разрабатываемым для нее языком был язык ассемблера PARIS ( Par allel I nstruction Set ). Стало очевидно, что необходим лучший способ программирования машины, причем быстро. Ждать завершения Connection Machine Lisp (CM Lisp), реализации языка программирования Lisp очень высокого уровня с расширениями для параллельных вычислений , было не вариантом. CM Lisp был предложен Дэнни Хиллисом , и ожидалось, что его разработка будет продолжаться еще несколько лет.
Первоначально был разработан интерпретатор *Lisp . Быстро стало ясно, что для достижения скорости в гигаФЛОПС , которая теоретически достижима с помощью Connection Machine, понадобится компилятор *Lisp , транслирующий *Lisp в Lisp и PARIS . Компилятор *Lisp был написан Джеффом Минси и впервые выпущен в 1986 году. Приложение, достигающее более двух гигаФЛОПС, симулятор следа вертолета, было разработано Аланом Эголфом, тогдашним сотрудником United Technologies , и Дж. П. Массаром, сотрудником Thinking Machines, в 1987 году. [2]
*Lisp Simulator, эмулятор , предназначенный для запуска кода *Lisp на стандартных, непараллельных машинах, был разработан в то же время JP Massar. Этот симулятор все еще существует, [3] и был портирован в American National Standards Institute (ANSI) Common Lisp (CL) в 2001 году. Более старая версия, написанная на оригинальном CL, существует в репозитории искусственного интеллекта (ИИ) Университета Карнеги-Меллона (CMU) . [4]
Более поздние версии *Lisp, включавшие значительные улучшения функций и производительности, разрабатывались Клиффом Лассером, Джеффом Минси и Дж. П. Массаром до 1989 года. *Lisp был реализован на Thinking Machines CM5 примерно в 1990–1991 годах Дж. П. Массаром и Марио Бургуаном.
1958 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2020 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
LISP 1, 1.5, LISP 2 (заброшен) | |||||||||||||||
Маклисп | |||||||||||||||
Интерлисп | |||||||||||||||
молдавский лей | |||||||||||||||
Лисп-машина Лисп | |||||||||||||||
Схема | Р5РС | Р6РС | R7RS маленький | ||||||||||||
НОЛЬ | |||||||||||||||
ZIL (язык реализации Zork) | |||||||||||||||
Франц Лисп | |||||||||||||||
Общий Лисп | стандарт ANSI | ||||||||||||||
Ле Лисп | |||||||||||||||
Схема Массачусетского технологического института | |||||||||||||||
XLISP | |||||||||||||||
Т | |||||||||||||||
Chez Схема | |||||||||||||||
Emacs Лисп | |||||||||||||||
АвтоЛИСП | |||||||||||||||
ПикоЛисп | |||||||||||||||
Гамбит | |||||||||||||||
EuLisp | |||||||||||||||
ИСЛИСП | |||||||||||||||
OpenLisp | |||||||||||||||
Схема ПЛТ | Ракетка | ||||||||||||||
новыйLISP | |||||||||||||||
GNU-хитрость | |||||||||||||||
Визуальный ЛИСП | |||||||||||||||
Кложур | |||||||||||||||
Дуга | |||||||||||||||
ЛФЭ | |||||||||||||||
Хай |
StarLisp был написан на Common Lisp (CL), и, таким образом, обладал всей мощью CL. Для использования Connection Machine требовался хост или front-end . Для использования *Lisp этот front-end должен был запускать CL. Машины Symbolics , использующие Genera , и рабочие станции Sun Microsystems, работающие на Lucid Common Lisp от Lucid Inc., использовались для работы *Lisp.
StarLisp оперировал параллельными переменными (PVARS). Они представляли память машины соединений и были по сути векторами : один элемент на процессор CM (или виртуальный процессор).
StarLisp состоял из стандартных операций над PVARS, таких как сложение и умножение векторов, а также примитивов связи, которые по сути переупорядочивали элементы PVAR, используя коммуникационное оборудование CM для оптимальной маршрутизации данных.