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.[1]
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[2] para ser utilizado como Máquina Virtual para "p2", uma implementação planejada para o Perl5 e o Perl6.[3]
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".[4]
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
Ligações externas
Referências