編譯原理系列之二 文法和語言


文法和語言

  • ε,{ε},Ø三者之間的區別

    ε是一個終結符推導出的結果,表示一個不包含任何字符的序列。

    Ø是不包含任何元素的空集{},表示不存在匹配文法的句子。

    {ε}是任意一個符號串集合的0次冪,表示一個由空字組成的集合。

  • 句子與句型

    如果符號串x是由起始符號推導出的,則稱x是文法G[S]的句型。

    如果x中只包含終結符,則稱x是文法G[S]的句子。

    文法描述的語言是該文法一切句子的集合。

  • 四種文法

    0型文法:α→β,其中α至少包含一個非終結符。

    1型文法(上下文有關文法):α→β,其中|β|≥|α|S→ε除外。

    2型文法(上下文無關文法):a→β,其中a是一個非終結符。

    3型文法(規范文法):A→aA→aB.

    4種文法是逐漸增加限制的,所以規范文法一定是0型文法、1型文法、2型文法,上下文無關文法也一定是0型文法、1型文法...

  • 規范推導

    最右推導為規范推導,由規范推導推出的句型稱為右句型或規范句型。

  • 文法的二義性

    一個句型可能對應多個語法樹,一個句型可能對應多個最左/最右推導。

    如果一個文法中的某個句子可以對應兩個不同的語法樹,則稱這個文法是二義的。

    兩個不同的文法可能是一樣的語言。

    如果一種語言的所有文法都是二義的,則稱此語言先天二義。

    判定一個文法是否是二義的是遞歸不可解的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM