[SP-pm] Algumas duvidas sobre Perl

thiago glauco thiagoglauco at ticursos.net
Wed Sep 22 18:26:02 PDT 2010


Bruno Buss wrote:
> On Wed, Sep 22, 2010 at 7:52 PM, Eden Cardim <edencardim em gmail.com 
> <mailto:edencardim em gmail.com>> wrote:
>
>     2010/9/22 Bruno Buss <bruno.buss em gmail.com
>     <mailto:bruno.buss em gmail.com>>:
>     > E o que a máquina virtual do perl faz?
>     > (a) Ela pega esses opcodes, transforma em assembly da máquina
>     alvo e executa
>     > o programa final?
>     > (b) Ela intepreta esses opcodes para "mover" a máquina virtual?
>
>     Opção b, mas como eu falei antes, isso é ortogonal a compilação.
>
>
> Por isso que eu acho que ele faz uma interpretação inteligente.
> Não é simplesmente ler o arquivo e ir executando sobre demanda.
>
> Ele passa os analisadores léxicos, sintáticos e semânticos, monta a 
> árvore do programa e - creio eu que - aplique algoritmos de otimização.
> Mas *para mim*, com os conceitos que aprendi, isso não caracteriza 
> compilação... mas sim parsing com otimização da árvore.
>
> Será que a geração do código intermediário - que será executado na VM 
> do perl - a partir da árvore do programa é considerado um passo de 
> compilação?
> Talvez, não tenho certeza - nunca pensei nisso antes - mas acho que 
> talvez poderíamos chamar o Perl de uma linguagem híbrida, pois assim 
> como [VB|C#].NET e Java, não é puramente interpretada nem puramente 
> compilada?
O tio Tanenbaum tem um livro de organização estruturada de computadores...
Computadores são construídos em uma arquitetura organizada por níveis. 
no nível zero existe a lógica feita por transistores... teoricamente 
qualquer programa pode ser executado por um amontoado de transistores, 
depois vem o nível da lógica digital, onde temos as portas or, and, 
nand... Até que chegamos ao nível do Sistema Operacional. O Perl e o 
Java adicionam uma camada nesta arquitetura, permitindo que você compile 
um programa para esta camada adicionada. Ou seja, é sim uma camada de 
arquitetura acima do OS, e como camada de arquitetura tem seus tipos de 
dados próprios e palavras de comando próprias. Isso é o custo da 
programação multiplataforma, mas não é interpretação. Então java e Perl 
são sim, compiladas.
aí eu pego o Eric C. Raymond (The Art of Unix Programming):

' In truth, the term ‘scripting language’ is a somewhat awkward one. 
Many of the
the major languages usually so described (Perl, Tcl, Python, etc.) have 
outgrown the
group’s scripting origins and are now standalone general-purpose 
programming lan-
guages of considerable power. The term tends to obscure strong 
similarities in style
with other languages that are not usually lumped in with this group, 
notably Lisp and
Java. The only argument for continuing to use it is that nobody has yet 
invented a
better term.'<<<<

>
> [ ]'s
> -- 
> Bruno C. Buss
> http://brunobuss.wordpress.com/
> http://www.dcc.ufrj.br/~brunobuss/ <http://www.dcc.ufrj.br/%7Ebrunobuss/>
>
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm



More information about the SaoPaulo-pm mailing list