ПикоЛисп - PicoLisp
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
| Парадигмы | Функциональный, процедурный, объектно-ориентированный, декларативный, отражающий, мета |
|---|---|
| Семья | Лисп |
| Разработано | Александр Бургер |
| Впервые появился | 1988 |
| Стабильный выпуск | 20.6 / 20 июня 2020 |
| Печатная дисциплина | утка, динамичный, сильный |
| Язык реализации | C, сборка, ПикоЛисп |
| Платформа | IA-32, x86-64, Arm64 |
| Операционные системы | POSIX |
| Лицензия | Массачусетский технологический институт |
| Расширения имени файла | .l |
| Интернет сайт | пиколисп |
| Диалекты | |
| Эрзац ПикоЛисп, миниПикоЛисп[1] | |
ПикоЛисп это язык программирования, диалект языка Лисп. Он работает на операционные системы в том числе Linux и другие, которые Портативный интерфейс операционной системы (POSIX ) совместимый. Его главные особенности - простота и минимализм. Он построен на одной внутренней тип данных: клетка. На уровне языка программист может использовать три разных типы данных (числа, символы и списки) представлены ячейками и различаются битами в конце ячейки.[2] это бесплатное программное обеспечение с открытым исходным кодом выпущен под Лицензия MIT (X11).
особенности
Функции может принимать произвольные типы и количество аргументов. Макросы нужны только в редких случаях и реализуются с помощью функции цитаты. PicoLisp не включает Lisp лямбда-функция. Это связано с тем, что функция цитаты изменена, чтобы возвращать все ее аргументы без оценки, а не только машина из первых.[3]
Особенностью является внутренняя создавать, читать, обновлять и удалять (CRUD) функционирует. Стойкий символы первоклассные граждане (объекты), они загружаются из база данных файлы автоматически при доступе и записываются обратно при изменении. Приложения написаны с использованием иерархия классов из сущности и отношения.
Другие функции включают: Пролог двигатель ядро базы данных и запросы к базе данных, распределенные базы данных, встраивание C языковые функции и вызовы собственных функций C, управление дочерними процессами, межпроцессного взаимодействия, браузер графический интерфейс пользователя (GUI) и интернационализация и локализация.
История
В 1980-х годах PicoLisp начал разработку Macintosh, и использовался в коммерческих приложениях[который? ] развитие с тех пор.[нужна цитата ] Он был перенесен на ДОС и SCO Unix. С 1993 года он использовался в основном в Linux. В середине 1990-х были добавлены функции базы данных.
Первые версии были написаны на смеси C и язык ассемблера. В 1999 г. первый переписать с нуля, полностью на C. В 2002 году эта версия была выпущена под Стандартная общественная лицензия GNU (GNU GPL). В 2010 году она была изменена на лицензию MIT / X11.
В 2009 г. 64-битный была выпущена версия, еще одна переписанная, на этот раз написанная на универсальной сборке, которая, в свою очередь, реализована в PicoLisp. В этой версии добавлена поддержка сопрограммы.
В декабре 2010 г. Ява версия названа Эрзац ПикоЛисп был выпущен.[4]
В сентябре 2014 года Burger анонсировал проект PilMCU по разработке PicoLisp. список рассылки, попытка с Джорджем Орайсом реализовать PicoLisp напрямую на аппаратном уровне.[5]
Летом 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.
- ^ «Даже мелкие детали имеют значение!».
- ^ Бургер, Александр (8 мая 2013 г.). «Эрзац ПикоЛисп». Лаборатория программного обеспечения.
- ^ «Анонс: PicoLisp в аппаратном обеспечении».