• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Perl 6的結構

    發表于:2007-06-11來源:作者:點擊數: 標簽:
    摘要 源碼進入解釋器,解釋器產生一個語法樹(syntax tree)。 語法樹進入編譯器,編譯器產字節碼(bytecode)。 字節碼進入優化器(optimizer),優化器產生更多的(更好的)字節碼。 Runtime然后來處理進入的字節碼(可能是運行它,不過也有可能把它轉化為 Jav

    摘要

    源碼進入解釋器,解釋器產生一個語法樹(syntax tree)。

    語法樹進入編譯器,編譯器產字節碼(bytecode)。

    字節碼進入優化器(optimizer),優化器產生更多的(更好的)字節碼。

    Runtime然后來處理進入的字節碼(可能是運行它,不過也有可能把它轉化為Java字節碼,或者.Net字節碼,或者可執行的Alpha 代碼(an alpha executable),或者編碼的DNA序列)。

    Source Code

    +----------------+

    |The Parser |

    +----------------+

    Syntax Tree

    +-------------------+

    |The Compiler |

    +--------------------+

    Bytecode

    +---------------------------+

    |Byteode Optimizer |

    +---------------------------+

    Better Bytecode

    +------------+

    |Runtime |

    +------------+

    計劃

    解釋器將允許你改變這些規則。規則集(rule sets)定義了主要的語言(Perl, C, Python, Java, etc.),你可以為其他的語言撰寫新的規則(比如,沒有$ @ %等符號的Perl)。

    運行時引擎(the runtime engine)將會時一個基于寄存器的虛擬機(a register-based virtual machine),而perl5的虛擬機時基于棧的(stack-based)。

    重寫(revisit)Perl的一個主要原因是要去修復混亂的XS(XS是指用C/C++子程序來擴展Perl)的方式。除了用來執行Perl的函數,Perl5沒有用于擴展的API,所以擴展Perl需要大量繁瑣的工作。Dan和Larry的目標是要使C擴展的使用盡可能的簡單(Brian Ingerson的精彩的Perl5內聯模塊為此指明一些方向)。任何使用過XS的人都等著它的滅亡。

    Perl5被設計成這樣一種方式,那就是當有C的時候,它就可以運行。近來,一些虛擬機(JVM, .NET)代替了C。所以,我們將看到,我們的自己的虛擬機不僅可以在有C的時候運行,而且同樣可以方便的將字節碼輸入到其他的虛擬機。



    原文轉自:http://www.kjueaiud.com

    ...
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>