potion é uma pequena e rápida linguagem de programação dinâmica e orientada à pilha com um compilador JIT, clausuras, continuações e exceções, uma máquina virtual baseada em Lua e um modelo de objeto baseado em entrada e saída embutida o em torno da troca de mensagens, um metaobjeto e mixins. É tecnicamente um Common_Lisp somente léxico com duas linguagens: uma para o código, uma para os dados e ela foi escrita sob 10 mil linhas de C.

História

O potion foi criado por _why como seu último projeto em 2007 antes de seu desaparecimento da internet.

Ele começou brincando com as partes internas da linguagem Lua e lendo materiais de Ian Piumarta e de Nicolas Cannasse.

Após o desaparecimento de _why, um desenvolvedor chamado "fogus" assumiu a manutenção até 2013. A palavra-chave class foi adicionada nesse período.

Em 2013, um grupo autodenominado perl11 "(5+6=11)", com Reini Urban como desenvolvedor chefe, assumiu o desenvolvimento do potion para ser utilizado como Máquina Virtual para "p2", uma implementação planejada para o Perl5 e o Perl6.

Ambas as linguagens, potion e p2, são agora desenvolvidas juntas pelos desenvolvedores do perl11. A versão v0.1 foi lançada em 16 de Outubro de 2013 na conta github do grupo.

Filosofia

"Se você mantê-lo pequeno, couber a Máquina Virtual, o analisador e a stdlib em 10 mil linhas, então não é suor".

Exemplos

Sequência de Fibonacci: fib = (n): if (n < 2): n. else: fib (n - 1) + fib (n - 2). . n = argv(1) number if (n<1): n=28. ("fib(",n,")= ", fib(n)) join say

# parrot example/fib.pir 40 3m36.447s # perl example/fib.pl 40 2m19.752s # potion example/fib.pn 40 0m3.512s

Recursos

Orientação a objetos pura baseada em protótipos Tratamento de exceções baseado em callcc/yield em assembler não portado expressões regulares similares às do Perl (planejado) Compactação imprecisa do Coletor de lixo suportando referências fracas. Carregamento de bibliotecas na maioria das plataformas Introspecção, reflexão e metaprogramação Concorrência baseada em atores Corotinas Entrada/Saída assíncronas rápidas Máquina virtual pequena Funções de ordem superior

Ligações externas Sítio oficial Conta da perl11 no Github

Categoria:Programas de computador livres educativos