[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