Perlito é uma implementação da linguagem de programação Perl 6.
O que o Perlito tem de especial?
Esta página carregou a versão para Javascript do Perlito. Para utilizá-la, clique no botão "Execute" abaixo de cada exemplo.
É possível editar os exemplos, experimente. Você certamente encontrará erros do compilador - este é um trabalho em desenvolvimento, e a implementação ainda tem alguns problemas.
Exemplo: interpolação de string, comando "say"
Exemplo: comando "for", estruturas de dados
Exemplo: gramática e objeto "Match"
A distribuição do Perlito no CPAN se chama "v6". Para instalar:
cpan install v6
Com v6.pm instalado, é possível executar scripts com o perl 5 que você tem no seu computador:
#!/usr/local/bin/perl
use v6-perlito;
"hello, world".say;
A distribuição "v6" inclui o script "perlito", que permite a execução interativa:
perlito
>
> my @v
> @v = 1..4
> say @v.perl
[1, 2, 3, 4]
> for @v { say "hello, $_" }
hello, 1
hello, 2
hello, 3
hello, 4
O compilador consiste de uma gramática, como a que vimos no exemplo acima, que descreve as diversas estruturas da linguagem Perl 6. O resultado da gramática é um objeto que contém a "árvore de sintaxe abstrata" (AST) do script. A árvore de sintaxe é então percorrida por um gerador de código, que escreve o programa executável.
Exemplo: clique no botão para ver a árvore de sintaxe
Exemplo: clique no botão para gerar a árvore de sintaxe deste script
A arquitetura do compilador Perlito é derivada do compilador "MiniPerl6", desenvolvido em 2006. O desenho abaixo mostra a relação entre os diversos componentes do MiniPerl6. O Perlito acrescenta a esta estrutura um parser de precedência.
O compilador Perlito é a ferramenta que traduz o seu script para um formato em que possa ser executado: Javascript, Perl5, Python, Ruby, Lisp, ou binário ".exe", "elf" ou ".class".
A versão completa do compilador está disponível no site github: http://github.com/fglock/Perlito
As versões estáveis estão disponíveis em http://github.com/fglock/Perlito/downloads
v6.pm "Perl6 em Perl5" disponível no CPAN: http://search.cpan.org/dist/v6
Perlito em Javascript: disponível em http://perlcabal.org/~fglock/perlito6.js. Esta é a versão utilizada nos exemplos deste artigo.
Flávio S. Glock <fglock@gmail.com>