Функциональный язык программирования Lisp является вторым старейшем языком программирования высокого уровня с прямыми потомками и близкородственными диалектами все еще широко используется сегодня. Язык Fortran старше на год. [1] [2] Лисп, как и Фортран, сильно изменился с момента своего появления, и за его историю существовало множество диалектов. Сегодня наиболее широко известными диалектами Лиспа общего назначения являются Common Lisp и Scheme .
Язык | Год начался | Создано (в) | Комментарии | Рекомендации |
---|---|---|---|---|
ACL2 | 1990 г. | Роберт Бойер , Дж. Мур , Мэтт Кауфманн | Вычислительная логика для прикладного Common Lisp состоит из языка программирования , расширяемой теории в логике первого порядка и механического средства доказательства теорем | [3] |
Дуга | 2008 г. | Пол Грэм | Диалект Лиспа, разработанный Полом Грэмом и Робертом Моррисом | [4] |
AutoLISP | 1986 г. | Дэвид Бец | Создан для включения и использования полной версии AutoCAD и его производных | [5] |
BBN LISP | 1966 г. | BBN | Основан на реализации Лиспа для PDP-1 , разработанной Л. Питером Дойчем , который разрабатывался с 1960 по 1964 год; со временем язык расширился, пока в 1966 году он не стал отдельным диалектом; позже переименован в Интерлисп | [6] |
Chez Scheme | 1985 г. | Р. Кент Дибвиг | Схема диалекта | |
Курица | 2000 г. | Феликс Винкельманн | Схема диалекта | |
Clojure | 2007 г. | Рич Хикки | Диалект Лиспа, подчеркивает функциональное программирование ; работает на виртуальной машине Java , Common Language Runtime и движках JavaScript ; как и другие Лиспы, обрабатывает код в данных ( homoiconicity ) и имеет макро - систему | [7] |
ANSI Common Lisp | 1994 г. | Комитет ANSI X3J13 | Common Lisp расширения и стандартизированы, опубликованный в ANSI стандарт документа ANSI INCITS 226-1994; к функциям Common Lisp он добавляет макрос цикла и объектную систему Common Lisp (CLOS) для обеспечения парадигмы объектно-ориентированного программирования с множественной диспетчеризацией (мультиметоды) и комбинациями методов; работает на многих платформах: Unix , Linux, macOS , Windows , JVM , JavaScript, Unix / C, LLVM / C ++ , Android , iOS | [8] |
Common Lisp | 1984 | Lisp диалект первым стандартизирован в книге « Common Lisp на языке », по Guy L. Steele , [9] разработан в качестве стандартизированного и улучшенного преемника Maclisp ; статическая и динамическая область видимости ; строго типизированный, допускает (необязательно) объявления типов; [10] отдельные пространства имен для функций и переменных данных, черта, часто называемая Lisp-2 ; объектно-ориентированное программирование возможно с помощью таких библиотек, как Flavors , CommonLOOPS и более поздние версии CLOS; обрабатывает код как данные ( гомоиконность ) и имеет макросистему ; Считыватель является расширяемой с помощью чтения макросов [10] | [8] | |
Дилан | 1992 г. | Компьютер Apple | Основанный в основном на Scheme и Common Lisp, был разработан Apple как язык системного и прикладного программирования; впервые использовался для написания операционной системы и приложений для внутренних прототипов выпущенного позже компьютера Apple Newton; первая официальная версия Apple Dylan также имела синтаксис, основанный на s-выражениях ; Apple сотрудничала с партнерами для разработки этого языка | |
Emacs Lisp | 1976 г. | Ричард Столмен | Также называется Elisp, используется текстовыми редакторами GNU Emacs и XEmacs для реализации большинства функций редактирования, встроенных в Emacs. | [11] |
EuLisp | 1990 г. | Диалект Lisp со статической и динамической областью видимости, разработанный группой промышленных и академических пользователей и разработчиков Lisp по всей Европе; на разработчиков стандартов предназначен для создания нового Lisp «менее обремененные прошлым» ( по сравнению с Common Lisp ), а не так минималистский , как на схеме , и интегрировать объектно-ориентированного программирования парадигмы хорошо | [12] | |
Ференц Лисп | 1980 г. | Ричард Фейтман | Написано в Калифорнийском университете в Беркли студентами профессора Ричарда Дж. Фейтмана , основано в основном на Maclisp и распространяется вместе с Berkeley Software Distribution (BSD) для Digital Equipment Corp (DEC) VAX | [13] |
Игровой ассемблер Lisp (цель) | 2000-е | Энди Гэвин | Язык программирования видеоигр, разработанный Энди Гэвином и командой Jak and Daxter в Naughty Dog ; написано с использованием Allegro Common Lisp ; используется при разработке полной серии игр | [14] |
Hy | 2013 | Поль Тальямонте | Шепелявка с тесной интеграцией с Python . | |
Икарус | 2007 г. | Абдулазиз Гулум | Схема диалекта | |
Интерлисп | 1967 | BBN | Среда программирования построена на одной из версий языка Лисп; разработка началась в 1967 году в Bolt, Beranek and Newman в Кембридже, Массачусетс, как BBN LISP , который работал на машинах PDP-10 под управлением операционной системы TENEX ; когда Дэнни Боброу , Уоррен Тейтельман и Рональд Каплан перешли из BBN в Xerox PARC , он был переименован в Interlisp. | [15] |
ISLISP | 1997 г. | WG16 | Небольшой базовый язык, помогающий преодолеть разрыв между разными диалектами Лиспа | [16] |
Le Lisp | 1981 г. | INRIA | Дизайн: Жером Шайю, Эммануэль Сент-Джеймс, INRIA. | [17] [18] [19] |
Erlang со вкусом Lisp (LFE) | 2008 г. | Роберт Вирдинг | Диалект Лиспа, построенный на Core Erlang и виртуальной машине Erlang BEAM | |
Лисп-машина Лисп | 1984 | Иногда называемый Зеталиспом, является прямым потомком Маклиспа ; был разработан в середине-конце 1970-х как язык системного программирования для машин MIT Lisp. | [20] | |
Маклисп | 1966 г. | Проект MAC | Создано в MIT 's Project MAC в конце 1960-х; на основе Lisp 1.5 ; Ричард Гринблатт был главным разработчиком исходной кодовой базы для PDP-6 ; [21] Джон Л. Уайт отвечал за дальнейшее обслуживание и развитие | [21] |
MultiLisp | 1980-е | Роберт Х. Холстед | Диалект схемы , расширенный конструкциями для параллельных вычислений , выполнения и разделяемой памяти ; также были некоторые необычные алгоритмы сборки мусора и планирования задач | [22] |
Ноль | 1970-е | Массачусетский технологический институт | 32-битная реализация Lisp, разработанная в Массачусетском технологическом институте ; намеревался стать преемником Maclisp ; NIL расшифровывался как «Новая реализация LISP» и частично был ответом на компьютер VAX компании DEC. | [23] [24] |
OpenLisp | 1988 г. | Кристиан Жульен | ISLISP- совместимый язык со многими расширениями Common Lisp ; работает на большинстве современных операционных систем | [25] |
Сова лисп | 2012 г. | Аки Хелин | Чистый функциональный диалект схемы ; на основе применимого подмножества стандарта R7RS; был расширен в основном потоками и структурами данных, необходимыми для чисто функциональной работы | [26] |
ПикоЛисп | 1988 г. | Александр Бургер | Диалект Лиспа с открытым исходным кодом ; работает в Linux и других системах, совместимых с POSIX ; главные черты - простота и минимализм | [27] |
Портативный стандартный Lisp | 1980 г. | Университет Юты | Хвостовой рекурсивный диалект Lisp с динамической связью, вдохновленный его предшественником, Standard Lisp и Portable Lisp Compiler; он реализует систему компьютерной алгебры Reduce | |
Ракетка | 1994 г. | PLT Inc. | Универсальный , мультипарадигмальный язык программирования в семействе Lisp-Scheme; одна из целей его дизайна - служить платформой для создания, проектирования и реализации языков; он используется во многих контекстах, таких как создание сценариев , универсальное программирование, образование в области информатики и исследования. | [28] [29] |
Схема | 1970 г. | Гай Л. Стил , Джеральд Сассман | Функциональный язык программирования с минималистской философией дизайна, определяющий небольшое стандартное ядро с мощными инструментами для расширения языка | [9] |
Схема в одном определении ( SIOD ) | 1988 г. | Джордж Дж. Карретт | Реализация Small Scheme, написанная на C, сделанная для встраивания в программы на C. | |
НАВЫК | 1990 г. | Системы дизайна Cadence | Используется как язык сценариев и язык описания PCell, используемый во многих пакетах программного обеспечения EDA компанией Cadence. | [30] |
Т | 1984 | Джонатан А. Рис, Норман И. Адамс | Диалект схемы, разработанный в начале 1980-х Джонатаном А. Рисом, Кентом М. Питманом и Норманом И. Адамсом из Йельского университета в качестве эксперимента по разработке и реализации языка. | [31] |
TXR | 2009 г. | Каз Кылхеку | Состоит из диалекта Lisp (TXR Lisp) и языка шаблонов для обработки текста (TXR Pattern Language) | [32] |
График
Рекомендации
- ^ «SICP: Предисловие» . Архивировано из оригинала на 2001-07-27.
Lisp выжил уже около четверти века. Среди активных языков программирования только Фортран прожил дольше.
- ^ «Выводы» . Архивировано из оригинала на 2014-04-03 . Проверено 18 марта 2016 .
- ^ «Аннотированная библиография ACL2» .
- ^ Грэм, Пол. «Arc FAQ» . Проверено 18 марта 2016 .
- ^ «АвтоЛИСП» . Проверено 14 апреля 2014 года .
- ^ "BBN-LISP" . Семья Интерлисп . Группа сохранения программного обеспечения . Проверено 17 марта 2016 года .
- ^ "Clojure" . Clojure.org . Проверено 15 сентября 2015 .
- ^ а б "CLHS: О Common Lisp HyperSpec: Информация об авторстве" . LispWorks . Проверено 1 мая 2019 .
- ^ а б Стил, Гай Л. младший (1981). Общий Лисп язык, 2-е изд . Цифровая пресса. ISBN 978-1-55558-041-4.
Common Lisp - это новый диалект Lisp, преемник MacLisp, на который сильно повлияли ZetaLisp и в некоторой степени Scheme и InterLisp.
- ^ а б «Common Lisp - язык: объявления типов» .
- ^ «Мои впечатления от Lisp и разработка GNU Emacs» . GNU . Проверено 18 марта +2016 .
- ^ «Обзор EuLisp» (PDF) . www.softwarepreservation.org . Проверено 18 марта +2016 .
- ^ Габриэль, Ричард П. (май 1985 г.). Производительность и оценка систем Lisp (PDF) . MIT Press ; Серия компьютерных систем. ISBN 0-262-07093-6. LCCN 85-15161 .
- ^ «[Sweng-gamedev] Языки высокого уровня (было: мультиплатформенная балансировка нагрузки следующего поколения)» . Архивировано из оригинала 12 апреля 2007 года.
- ^ Тейтельман, Уоррен (апрель 1972 г.), «Делай то, что я имею в виду», Компьютеры и автоматизация : 8–11.
- ^ «Язык программирования ISLISP» . Архивировано из оригинального 22 января 2016 года . Проверено 18 марта +2016 .
- ^ Шайю, Жером (1983). «LE LISP 80 версия 12» (PDF) . INRIA . Проверено 16 марта 2012 года .
- ^ Chailloux, J .; Девин, М .; Халлот, Дж. М. (1984). «Le_Lisp, портативная и эффективная система Lisp» (PDF) . INRIA . Проверено 16 марта 2012 года .
- ^ Шайю, Жером (ноябрь 2001 г.). Le_Lisp de l'INRIA: Le Manuel de référence. Версия 14 . Роккенкур, Франция : INRIA . п. 190.
- ^ «Руководство по Lisp Machine» (PDF) . Массачусетский технологический институт . Проверено 18 марта +2016 .
- ^ а б Леви, Стивен (1984). Хакеры: Герои компьютерной революции . Даблдэй. ISBN 0-385-19195-2.
- ^ Холстед, Р. Х. "Язык для параллельных символьных вычислений" . Проверено 12 октября 2006 .
- ^ Габриэль, Ричард П. (май 1985 г.). Производительность и оценка систем Lisp (PDF) . MIT Press ; Серия компьютерных систем. ISBN 978-0-262-07093-5. LCCN 85015161 .
- ^ Стил, Гай Л. мл .; Габриэль, Ричард П. «Эволюция Лиспа» (PDF) . Проверено 12 октября 2006 .
- ^ «Элигис: OpenLisp, ISLISP, ISO Lisp» . Проверено 7 апреля 2018 года .
- ^ «Сова Лисп» . Проверено 4 февраля 2020 .
- ^ Бургер, Александр. «Внутренние конструкции» . software-lab.de . Проверено 18 марта +2016 .
- ^ «Добро пожаловать в ракетку» . Проверено 15 августа 2011 .
- ^ «Диалекты ракетки и схемы» . Проверено 15 августа 2011 .
- ^ Барнс, Т.Дж. (1990). «НАВЫКИ: язык расширения САПР». Конференция по автоматизации проектирования, 1990. Труды, 27-я ACM / IEEE . ЦАП 90 года. DOI : 10.1109 / DAC.1990.114865 .
- ^ «Проект Т» . Джонатан Рис . Проверено 18 марта +2016 .
- ^ «Язык TXR» . Каз Кылхеку . Проверено 31 августа 2017 года .