[Cascavel-pm] "Debugando" debugando o perl

Nilson Santos Figueiredo Junior acid06 em gmail.com
Sexta Setembro 30 11:45:02 PDT 2005


On 9/30/05, Breno G. de Oliveira <breno em clavis.com.br> wrote:
> Segundo ele, o interpretador Perl lê o código fonte do seu programa e
> constrói uma árvore de parsing interna. Então ele interpreta a árvore,
> evitando trabalhar em cima de seu código fonte original e assim fazendo
> com que o Perl seja mais rápido que a maioria das linguagens interpretadas.
>
> Já o código fonte Java passa por um compilador que o transforma em
> executável para a máquina virtual do Java (JVM), uma camada de abstração
> acima do hardware da máquina. Esse executável, na linguagem aceita pela
> JVM é então interpretada pelo Java runtime (JRE).
>
> Assim, ambas são interpretadas, mas possuem abordagens diferentes para
> tal (Lembrando que o modelo clássico de linguagem interpretada é ler o
> código fonte e executar cada instrução a medida que a mesma é lida, e é
> extremamente lento).

Um programa em Perl *é* compilado pelo perl, na verdade são 4 estágios
de compilação/otimização, no total. A diferença é que tudo isso fica
dentro do perl e ao invés de ser salvo em um arquivo já fica direto
como uma árvore na memória. Mas você pode salvar código em Perl
pré-compilado, caso queira. O código depois de compilado, é executado
pela máquina virtual do Perl, que também está lá dentro do perl.

A diferença está apenas no fato de que enquanto em Java você tem o
"javac" pra compilar e que salva o resultado em um arquivo, pra depois
ser interpretado pelo "java" (a JVM) em Perl tudo é feito pelo "perl",
dentro dele fica tanto o compilador quanto a máquina virtual.

Se você comparar algoritmos tradicionais (aqueles encontrados em
livros de algortimos, por exemplo) normalmente, a versão em Java vai
ser mais rápida. Se fizer muito uso de operações matemáticas, a
vantagem de Java fica maior ainda. Contudo, se você for avaliar a
performance de um aplicativo pronto (principalmente no quesito
responsividade), você nota claramente que Java é mais lento.

-Nilson Santos F. Jr.


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