Máquina virtual em Perl

perl_vm

Após ler a postagem do Felix Angel sobre sua implementação de uma máquina virtual em C (em C normal, sem nenhum prefixo ou sufixo) resolvi exercitar o pouco que sei da linguagem traduzindo o código apresentado em Perl. E foi uma tradução quase que linha a linha já que sintaticamente Perl até se parece com C. Diferença, mesmo, ficou na ausência do switch … case* e na forma como as variáveis são declaradas, mas vale a curiosidade.

O código está disponível no GitHub pra quem quiser brincar, implementar os recursos que o autor original sugeriu no texto dele, implementar outras instruções ou converter para alguma outra linguagem.

(*) No Perl 6 a estrutura foi implementada e há um módulo chamado Switch que corrige este problema no Perl 5, logo não havia motivo para cascatear if mas fiz assim mesmo.

Anúncios