Эта статья поднимает множество проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалить эти сообщения-шаблоны ) ( Узнайте, как и когда удалить этот шаблон сообщения )
|
Парадигмы | Функциональный , процедурный , объектно-ориентированный , декларативный , рефлексивный , мета |
---|---|
Семья | Лисп |
Разработано | Александр Бургер |
Впервые появился | 1988 |
Стабильный выпуск | 20.6 / 20 июня 2020 г . |
Печатная дисциплина | утка , динамичная , сильная |
Язык реализации | C , сборка , PicoLisp |
Платформа | IA-32 , x86-64 , Arm64 |
Операционные системы | POSIX |
Лицензия | Массачусетский технологический институт |
Расширения имени файла | .l |
Веб-сайт | picolisp |
Диалекты | |
Эрзац ПикоЛисп, miniPicoLisp [1] |
PicoLisp - это язык программирования, диалект языка Lisp . Он работает в операционных системах, включая Linux и другие, которые совместимы с Portable Operating System Interface ( POSIX ). Его основные черты - простота и минимализм . Он построен на одном внутреннем типе данных : ячейке. На уровне языка программист может использовать три разных типа данных (числа, символы и списки), которые представлены ячейками и различаются битами в конце ячейки. [2] Это бесплатное программное обеспечение с открытым исходным кодом, выпущенное по лицензии MIT. (X11).
Особенности [ править ]
Функции могут принимать произвольные типы и количество аргументов. Макросы нужны только в редких случаях и реализуются с помощью функции цитаты. PicoLisp не включает лямбда-функцию Лиспа . Это связано с тем, что функция цитаты изменена, чтобы возвращать все ее аргументы без оценки, а не только car
первый. [3]
Особенностью является встроенная функция создания, чтения, обновления и удаления (CRUD). Постоянные символы - это первоклассные граждане (объекты), они автоматически загружаются из файлов базы данных при доступе и записываются обратно при изменении. Приложения, написанные с использованием иерархии классов из сущностей и отношений .
Другие функции включают в себя: механизм Prolog, механизм базы данных и запросы к базе данных, распределенные базы данных, встраивание функций языка C и вызовов собственных функций C, управление дочерними процессами, межпроцессное взаимодействие , графический интерфейс пользователя (GUI) браузера , а также интернационализацию и локализацию .
История [ править ]
В 1980-х годах PicoLisp начал разрабатываться на Macintosh и использовался в коммерческих приложениях [ какие? ] развитие с тех пор. [ необходима цитата ] Дизайн PicoLisp больше всего похож на первую версию MacLisp, Interlisp и, в основном, Portable Standard Lisp. [4] Он был перенесен на DOS и SCO Unix . С 1993 года он использовался в основном в Linux. В середине 1990-х годов были добавлены функции базы данных.
Первые версии были написаны на смеси C и ассемблера . В 1999 году было выполнено первое переписывание с нуля, полностью на C. В 2002 году эта версия была выпущена под лицензией GNU General Public License (GNU GPL). В 2010 году она была изменена на лицензию MIT / X11.
В 2009 году была выпущена 64-битная версия, еще одна переработанная версия, на этот раз написанная на универсальной сборке, которая, в свою очередь, реализована в PicoLisp. В этой версии добавлена поддержка сопрограмм .
В декабре 2010 года была выпущена версия Java под названием Ersatz PicoLisp . [5]
В сентябре 2014 года Burger объявил PilMCU проект по развитию PicoLisp листсерв , усилие с Джорджем Orais для реализации PicoLisp в аппаратных средств непосредственно. [6]
В июле 2015 года Burger анонсировал PilOS - операционную систему PicoLisp, минимальный прототип, основанный на модификации PilMCU, нацеленной на встроенные приложения. [7] Он работает на стандартном аппаратном обеспечении ПК x86-64, непосредственно из BIOS и включает в себя все функции 64-битного PicoLisp (за исключением вызовов собственных функций, поскольку нет другой собственной среды, такой как стандартная библиотека C) ; в принципе, он работает как собственная операционная система. [8]
Летом 2016 года была начата разработка PilBox («PicoLisp Box») - универсального приложения для Android , позволяющего писать приложения на чистом PicoLisp. Он все еще разрабатывается и поддерживается.
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 |
Ссылки [ править ]
- ^ "Загрузка PicoLisp" . Программная лаборатория . Проверено 18 ноября 2018 .
- ^ Бургер, Александр. «Внутренние конструкции» . Программная лаборатория . Проверено 18 ноября 2018 .
- ^ "Даже мелкие детали имеют значение!" .
- ^ https://www.mail-archive.com/[email protected]/msg04884.html
- ↑ Бургер, Александр (8 мая 2013 г.). «Эрзац ПикоЛисп» . Программная лаборатория .
- ^ «Объявление: PicoLisp в оборудовании» .
- ^ https://www.mail-archive.com/[email protected]/msg05364.html
- ^ https://picolisp.com/wiki/?PilOS
Внешние ссылки [ править ]
- Официальный сайт
- Picolisp на C2 вики