• 解析器語法引擎

    編輯
    本詞條由“匿名用戶” 建檔。

    解析器語法引擎

    編輯

    解析器語法引擎(PGE,最初為Parrot語法引擎)是Parrot虛擬機的Raku規則的編譯器和運行時。PGE使用這些規則將解析表達式語法轉換成Parrot字節碼。因此,它是將規則編譯成程序,而不像大多數虛擬機和運行時那樣,將正則表達式存儲在一個二級內部格式中,然后在運行時由正則表達式引擎解釋。PGE使用的規則格式可以表達任何正則表達式和大多數形式語法,因此它構成了Parrot所有前端語言的編譯鏈中的xxx個環節。當執行時,PGE產生的字節碼將按照輸入規則的描述來解析文本,產生一個解析。解析樹可以直接操作,也可以輸入到派諾特編譯器工具鏈的下一階段,以便生成AST,并從中生成代碼(如果語法描述了一種編程語言)。歷史PGE最初被命名為P6GE,用C語言編寫,在2004年11月首次發布后不久就被翻譯成原生的Parrot并重新命名。它的作者是PatrickR.Michaud。編寫PGE的目的是為了減少在Parrot之上實現一個編譯器所需的工作量。雖然目前Pugs的開發不再使用PGE作為其主要的規則后端,而是使用一個叫做PCR的本地引擎,但它也是為了讓Perl6能夠輕松地自我托管。PGE內部結合了三種解析方式。主要形式是Raku規則,所以PGE的規則對于一個純加法語法來說可能是這樣的。

    代碼生成

    編輯

    盡管PGE輸出的代碼將解析規則所描述的語法,并可在運行時用于處理代碼中發現的簡單語法和正則表達式,但其主要目的是解析高級語言。Parrot編譯器工具鏈分為幾個部分,其中PGE是xxx個部分。PGE將源代碼轉換為解析樹。然后,樹語法引擎(TGE)將這些轉換為帕羅特抽象語法樹(PAST)。第二個TGE通道將PAST轉換為帕羅特操作碼語法樹(POST),可直接轉換為可執行字節碼。

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/164024/

    (2)
    詞條目錄
    1. 解析器語法引擎
    2. 代碼生成

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久