[英]Can anyone explain this context-free grammar to me?
我需要為作業做些了解。 告訴我這一點,您不會給我答案,您只是在幫助我理解所提出的問題。
我閱讀了課堂筆記,這些筆記並沒有什么幫助,還可以在Internet上搜索不受上下文限制的語法信息。 我找不到任何看起來像我得到的東西,而且我很困惑。
如果有人可以告訴我這個CFG的描述,或者給我很好的資源來解釋這個主題,我將非常感謝。
CFG是這樣的:
S是開始符號
<S> → <A> | ε
<A> → 0<B> | 1<A>
<B> → 0<C> | 1<B>
<C> → 0<D> | 1<C>
<D> → 1<D> | 0<B> | ε
CFG定義了字符串模式。
這里的字符串可以是1,0,e。(字母)的模式。CFG的規則說明了如何將表達式擴展為字母字符串。
<S> → <A> | ε
<A> → 0<B> | 1<A>
<B> → 0<C> | 1<B>
<C> → 0<D> | 1<C>
<D> → 1<D> | 0<B> | ε
在這里A
可以擴展為0B
或1A
。 LHS只能擴展。
給定一個字符串,您可以驗證它是否由CFG描述。
讓我們取1000,看看它是否由此CFG描述。
我們將從S展開,該S可以擴展為A或e。
expr = S
e是一個特殊符號,表示其字符串終止。 我們將使用A
因為它給了我們希望,而不是終止於e
。
expr = A (S ->A)
A可以擴展為0B或1A。 對於我們的弦,我們將使用1A。
expr = 1A (A ->1A)
現在1A有了A。在規則表中查找可以擴展為0B或1A。 在給定的字符串之后,我們將取0B。 所以現在我們的結果是10B。
expr = 10B (A -> 0B)
查找B擴展為0C或1B。 我們將采用0C,因為它與我們給定的模式匹配。 因此,我們的弦變為100C。
expr = 100C (B -> 0C)
同樣,您可以繼續擴展表達式並以e結尾。
expr = 1000D (C -> 0D)
expr = 1000e (D -> e)
CFG:上下文無關文法(CFG)是形式語言理論中用來描述某種形式的形式文法的術語。在上下文無關文法中,所有規則都是一對一,一對多或一對一。由上下文無關文法生成的語言稱為上下文無關語言(CFL)。 不同的無上下文語法可以生成相同的無上下文語言。 區分語言的屬性和特定語法的屬性很重要。 語言相等性問題(兩個給定的上下文無關文法是否會產生相同的語言?)是不確定的。
以上幾行是CFG的一部分
簡而言之,從給出的任何CFG中,我們嘗試找出可以在該CFG中描述的字符串集。 這些字符串集構成該特定CFG的語言。
下面是圖形形式的問題解決方案:
在解決方案中,矩形框中的字符串是終止步驟。
因此,給定的CFG可以具有以下字符串:
{100,0100,1001,1010,01001,10011,10101,010011,0100111,......}
因此,此CFG可以具有以下任何類型的字符串:
length> = 3,通過觀察我們得到的最小長度字符串可以是100:
S --> A --> 1B --> 10C --> 100D --> 100e --> 100
通過觀察每個步驟中的字符串,您可以輕松地獲得此CFG可以具有任何三種類型的字符串的特性。
因此,此CFG描述了一種具有以上3個屬性的上下文無關語言。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.