<div class="gmail_quote">On Wed, Sep 22, 2010 at 7:52 PM, Eden Cardim <span dir="ltr">&lt;<a href="mailto:edencardim@gmail.com">edencardim@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">2010/9/22 Bruno Buss &lt;<a href="mailto:bruno.buss@gmail.com">bruno.buss@gmail.com</a>&gt;:<br>
</div><div class="im">&gt; E o que a máquina virtual do perl faz?<br>
&gt; (a) Ela pega esses opcodes, transforma em assembly da máquina alvo e executa<br>
&gt; o programa final?<br>
</div><div class="im">&gt; (b) Ela intepreta esses opcodes para &quot;mover&quot; a máquina virtual?<br>
<br>
</div>Opção b, mas como eu falei antes, isso é ortogonal a compilação.</blockquote><div><br></div><div>Por isso que eu acho que ele faz uma interpretação inteligente.</div><div>Não é simplesmente ler o arquivo e ir executando sobre demanda.</div>
<div><br></div><div>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.</div><div>Mas *para mim*, com os conceitos que aprendi, isso não caracteriza compilação... mas sim parsing com otimização da árvore.</div>
<div><br></div><div>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?</div><div>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?</div>
<div><br></div><div>[ ]&#39;s </div></div>-- <br>Bruno C. Buss<br><a href="http://brunobuss.wordpress.com/">http://brunobuss.wordpress.com/</a><br><a href="http://www.dcc.ufrj.br/~brunobuss/">http://www.dcc.ufrj.br/~brunobuss/</a><br>