[Rio-pm] Perl é genuinamente uma linguagem de script ou híbrida?

Nilson Santos Figueiredo Jr. acid06 em gmail.com
Sexta Fevereiro 17 07:38:23 PST 2012


On Fri, Feb 17, 2012 at 1:01 PM, Cleysinho <cleysinhonv at gmail.com> wrote:
> Sobre definição da linguagem tenho convicção que é uma linguagem
> interpretada, mas o contexto híbrido a torna bem mais elegante.

Perl é similar à Java.

Quando você executa um script, na verdade, ocorre a compilação do
mesmo para opcodes e então essa árvore de opcodes é caminhada,
executando o código (como se fosse uma VM do Perl). A diferença é que
em Perl tudo isso é feito pelo mesmo executável. A outra diferença é
que as máquinas virtuais de Java costumam ter otimizações para
conversão para código de máquina (JIT), mas isso não é um requisito, é
só para acelerar alguns tipos operações (em especial, operações
matemáticas) - atualmente, que eu saiba, ninguém fez um JIT pra Perl.

Inclusive, é possível você salvar a árvore de opcodes já compilada e
depois rodar somente o código "já compilado", utilizando o ByteLoader:

  http://search.cpan.org/~rurban/B-C-1.42/ByteLoader/ByteLoader.pm

Assim como em Java, é trivial reverter o código compilado para código
fonte original, então não serve para "security through obscurity", que
me pareceu ser uma das preocupações no seu campo de atuação.

-Nilson


Mais detalhes sobre a lista de discussão Rio-pm