PicoLisp - PicoLisp
Paradigmas | Funcional , procedimental , orientado a objetos , declarativo , reflexivo , meta |
---|---|
Família | Lisp |
Projetado por | Alexander Burger |
Apareceu pela primeira vez | 1988 |
Versão estável | 21.6 / 27 de junho de 2021
|
Disciplina de digitação | pato , dinâmico , forte |
Linguagem de implementação | LLVM , PicoLisp |
Plataforma | IA-32 , x86-64 , Arm64 |
SO | POSIX |
Licença | MIT |
Extensões de nome de arquivo | .eu |
Local na rede Internet | picolisp |
Dialetos | |
Ersatz PicoLisp, miniPicoLisp |
PicoLisp é uma linguagem de programação, um dialeto da linguagem Lisp . Ele é executado em sistemas operacionais incluindo Linux e outros que são compatíveis com Portable Operating System Interface ( POSIX ). Suas características mais proeminentes são a simplicidade e o minimalismo . É construído em um tipo de dados interno : uma célula. No nível da linguagem, um programador pode usar três tipos de dados diferentes (números, símbolos e listas) sendo representados por células e diferenciados por bits no final da célula. É um software gratuito e de código aberto lançado sob uma Licença MIT (X11).
Recursos
As funções podem aceitar tipos e números arbitrários de argumentos. As macros são necessárias apenas em casos raros e são implementadas usando a função de cotação. PicoLisp não inclui a função lambda do Lisp . Isso ocorre porque a função quote é alterada para retornar todos os seus argumentos não avaliados, não apenas o car
do primeiro.
Um recurso especial é o funcionamento intrínseco de criação, leitura, atualização e exclusão (CRUD). Os símbolos persistentes são cidadãos de primeira classe (objetos), eles são carregados de arquivos de banco de dados automaticamente quando acessados e gravados de volta quando modificados. Os aplicativos são escritos usando uma hierarquia de classes de entidades e relações .
Outros recursos incluem: mecanismo de Prolog , mecanismo de banco de dados e consultas de banco de dados , bancos de dados distribuídos, inlining de funções de linguagem C e chamadas de função C nativas, gerenciamento de processo filho, comunicação entre processos , interface gráfica do usuário (GUI) do navegador e internacionalização e localização .
História
Na década de 1980, o PicoLisp começou a desenvolver no Macintosh , e foi usado no desenvolvimento de aplicativos comerciais desde então. O design do PicoLisp é mais semelhante ao da primeira versão do MacLisp, Interlisp e principalmente do Portable Standard Lisp. Foi portado para DOS e SCO Unix . Desde 1993, ele foi usado principalmente no Linux. Em meados da década de 1990, as funções de banco de dados foram adicionadas.
As primeiras versões foram escritas em uma mistura de linguagem C e assembly . Em 1999, uma primeira reescrita do zero foi feita, totalmente em C. Em 2002, essa versão foi lançada sob uma GNU General Public License (GNU GPL). Em 2010, mudou para uma licença MIT / X11.
Em 2009, foi lançada a versão 64 bits , outra reescrita, desta vez escrita em assembly genérico, que por sua vez é implementado no PicoLisp. Esta versão adiciona suporte para corrotinas .
Em dezembro de 2010, uma versão Java chamada Ersatz PicoLisp foi lançada.
Em setembro de 2014, Burger anunciou o projeto PilMCU na lista de desenvolvimento do PicoLisp , um esforço com George Orais para implementar o PicoLisp em hardware diretamente.
Em julho de 2015, a Burger anunciou o PilOS - O Sistema Operacional PicoLisp, um protótipo mínimo baseado na modificação do PilMCU voltado para aplicações embarcadas. Ele roda em hardware de PC padrão x86-64, diretamente da BIOS e inclui todos os recursos do PicoLisp de 64 bits (menos chamadas de funções nativas, devido ao fato de não haver outro ambiente nativo como a biblioteca padrão C); em princípio, ele funciona como seu próprio sistema operacional.
No verão de 2016, o desenvolvimento do PilBox ("PicoLisp Box") - um aplicativo Android genérico que permite escrever aplicativos em PicoLisp puro - foi iniciado. Ele ainda está sendo desenvolvido e mantido.
1955 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2020 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
LISP 1, 1.5, LISP 2 (abandonado) | ||||||||||||||
Maclisp | ||||||||||||||
Interlisp | ||||||||||||||
MDL (linguagem de programação) | ||||||||||||||
Lisp Máquina Lisp | ||||||||||||||
Esquema | R5RS | R6RS | R7RS pequeno | |||||||||||
NADA | ||||||||||||||
ZIL (linguagem de implementação Zork) | ||||||||||||||
Franz Lisp | ||||||||||||||
Lisp Comum | ||||||||||||||
Le Lisp | ||||||||||||||
T | ||||||||||||||
Esquema Chez | ||||||||||||||
Emacs Lisp | ||||||||||||||
AutoLISP | ||||||||||||||
PicoLisp | ||||||||||||||
EuLisp | ||||||||||||||
ISLISP | ||||||||||||||
OpenLisp | ||||||||||||||
Esquema PLT | Raquete | |||||||||||||
GNU Guile | ||||||||||||||
Visual LISP | ||||||||||||||
Clojure | ||||||||||||||
Arco | ||||||||||||||
LFE | ||||||||||||||
Hy |