• 句法謂詞

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

    什么是句法謂詞

    編輯

    句法謂詞指定在形式語法中應用生產的句法有效性,類似于指定應用生產的語義有效性的語義謂詞。它是一種簡單而有效的手段,通過提供任意的前瞻,極大地提高LL分析器的識別強度。在其最初的實現中,句法謂詞的形式是"(α)?",并且只能出現在生產的左邊緣。所需的句法條件α可以是任何有效的無語境語法片段。更正式地說,句法謂詞是生產交集的一種形式,在分析器規范或形式化語法中使用。在這個意義上,謂詞具有數學指標函數的含義。如果p1和p2,是生產規則,由p1和p2產生的語言就是它們的集合交集。按照通常的定義或實現,句法謂詞隱含著對生產的排序,因此在同一決定中,較早指定的謂詞生產比較晚指定的謂詞生產具有更高的優先權。這傳達了一種消除歧義產品的能力,因為程序員可以簡單地指定哪個產品應該匹配。由BryanFord發明的解析表達式語法(PEG)通過允許非謂語和允許謂語出現在生產中的任何地方來擴展這些簡單的謂語。此外,Ford發明了packrat解析法,通過采用記憶化的方式在線性時間內處理這些語法,但要付出堆空間的代價。有可能支持像PEGs所允許的那樣一般的謂詞的線性時間解析,但是通過避免回溯來減少與記憶化相關的內存成本,在這種情況下,一些更有效的lookahead的實現就足夠了。這種方法由ANTLR第3版實現,它使用確定性有限自動機進行查找;這可能需要測試一個謂詞,以便在DFA的轉換中進行選擇(稱為pred-LL(*)解析)。

    句法謂詞的概述

    編輯

    術語

    句法謂詞是由Parr&Quong創造的,它將這種形式的謂詞與語義謂詞(也有討論)區分開來。句法謂詞在各種文獻中被稱為多步驟匹配、解析約束和簡單謂詞。(見下面的參考文獻部分。)本文自始至終使用句法謂詞這個術語,以保持一致性并將其與語義謂詞區分開來。形式上的封閉屬性Bar-Hillel等人表明,兩種正則語言的交集也是一種正則語言,也就是說,正則語言在交集下是封閉的。正則語言和無語境語言的交集也是封閉的,至少從Hartmanis開始就知道,兩種無語境語言的交集不一定是無語境語言(因此也不是封閉的)。這一點可以用典型的xxx類語言輕易地證明。

    其他考慮

    編輯

    在大多數使用句法謂詞的形式主義中,謂詞的句法是非交換性的,也就是說,謂詞的操作是有序的。例如,使用上面的例子,考慮下面的偽語法,其中X::=YPREDZ被理解為:。

    謂詞邏輯

    在必須首先滿足Z的情況下,ANBN將無法生成aaabbb,因此aaabbbccc不會由語法生成。此外,如果Y或Z(或兩者)指定了還原時要采取的任何行動(如許多分析器中的情況),這些產物的匹配順序決定了這些副作用的發生順序。隨時間變化的形式主義(如自適應語法)可能依賴于這些副作用。

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

    (0)
    詞條目錄
    1. 什么是句法謂詞
    2. 句法謂詞的概述
    3. 術語
    4. 其他考慮

    輕觸這里

    關閉目錄

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