Potion (linguagem de programação)

De Wiki Software Livre na Educação

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[editar]

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[editar]

"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[editar]

Sequência de Fibonacci: <source lang="io"> 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

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

</source>

Recursos[editar]

Ligações externas[editar]