作業2 文法和語言

2022-07-19 05:48:10 字數 1069 閱讀 2578

1.文法g(z):z->azb|ab定義的是什麼樣的語言?

產生式有:z->azb, z->ab

因此有:z=>ab, z=>azb=>a²b²

重複使用產生式z->azb,得 z=>azb=>a²zb²...=>aⁿ﹣¹zbⁿ﹣¹=>aⁿbⁿ

所以,文法所確定的語言為l(g[z])=

2.寫出教材22頁例2.2中識別符號的文法四元組形式。

文法g=(vn,vt,p,s).

vt=,vn=

p=s=

3.寫出下列表示式的最左推導、最右推導和語法樹。

g(e):e->e+t | t

t->t*f | f

f->(e) | i

最左推導:e=>e+t=>t+t=>t*f+t=>f*f+t=>i*f+t=>i*i+f=>i*i+i

最右推導:e=>e+t=>e+f=>e+i=>t+i=>t*f+i=>t*i+i=>f*i+i=>i*i+i

語法樹:

最左推導:e=>e+t=>t+t=>f+t=>i+t=>i+t*f=>i+f*f=>i+i*f=>i+i*i

最右推導:e=>e+t=>e+t*f=>e+t*i=>e+f*i=>e+i*i=>t+i*i=>f+i*i=>i+i*i

語法樹:

最左推導:e=>e+t=>t+t=>f+t=>i+t=>i+f=>i+(e)=>i+(e+t)=>i+(t+t)=>i+(f+t)=>i+(i+t)=>i+(i+f)=>i+(i+i)

最右推導:e=>e+t=>e+f=>e+(e)=>e+(e+t)=>e+(e+f)=>e+(e+i)=>e+(t+i)=>e+(f+i)=>e+(i+i)=>t+(i+i)=>f+(i+i)=>i+(i+i)

語法樹:

2 文法和語言

字母表 字母表是元素的非空有窮集合,字母表中的元素稱為符號,因此字母表也稱為符號集。符號串 由字母表中的符號組成的任何有窮序列稱為符號串。在符號串中,符號的順序是非常重要的。如果某符號串x中有m個符號,則稱其長度為m,表示為 x m。允許空符號串,即不包含任何符號的字串,用 表示,其長度為0,即 0...

2 文法和語言

2.3文法和語言的形式定義 語法只定義什麼樣的符號串行是合法的,與這些符號的含義毫無關係,對pascal,乙個上下文無關文法可定義符號串a b c是合乎語法的,a b 不。若b實型,c布林,或b c中任何乙個沒事先說明,程式語言的語義分兩 靜態語義和動態語義 靜態語義是一系列限定規則 動態語義也稱執...

2 6 文 法 和 語 言 的 分 類

著名的語言學家喬姆斯基 chomsky 將文法和語言分為 4 大類,即 0 型 1 型 2 型和 3 型。劃分的依據是對文法中的規則施加不同的限制。若文法 g v n v t p s 中的每條規則 是這樣一種結構 v n v t 且至少含乙個非終結符,而 v n vt 則稱 g是 0 型文法。0 型...