編譯原理第二次作業9 11

2022-05-21 22:36:10 字數 1014 閱讀 1411

1.理解符號串與集合運算。

l=d=

說明下表示的含義:

lud:全部字母和數字在集合

ld:由乙個字母後跟乙個數字組成的所有符號串的集合

l4:由4個字母組成的所有符號串集合

l*:由字母組成的所有符號串的集合

d+:由乙個或若干個數字組成的所有符號串集合

l(lud)*以字母開頭,後跟字母、數字組成的所有符號串的集合

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

答:因為z->azb

所以z->aazbb

因為 z->ab

所以z-> aabb

又因為z->azb

所以aazbb->aaabbb

又因為z->ab

所以aabb->aaabbbl(g

)= 因此定義l(

g)定義的是

anbn

3.寫出教材22頁例2.2中識別符號的文法四元組形式(vn,nt,p,s)。

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

vn =,v

t = 

p=s=

4.寫出下列表示式的最左推導、最右推導。

g(e):

e=> e + t | t

t=>t * f | f

f=>(e)| 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

編譯原理第二次作業 詞法分析心得

今次大作業是詞法分析,這次的詞法分析的程式編寫,有遇到很多的問題,比如說如何去定義單詞與數字還有符號之間的判斷關係,怎麼去用陣列儲存輸入進去的字串,還有就是判斷的一些程式不懂該如何去編寫。而通過這次實驗,我也開始明白了編譯的一些基本的原理,更加的明白編譯器編寫的過程需要注意的一些錯誤,充分認識到了自...

第二次作業

execise02 1.查詢85年以後出生的學生姓名 性別和出生日期 2.列表顯示所有可能的學生選課組合 學號 課程號 3.查詢1 2 4班中陳姓同學的資訊 4.查詢所有及格的學生姓名 所選課程名及所得分數 5.統計各門課程的及格人數 課程編號 課程名 及格人數 6.統計各門課程的總人數 及格人數和...

第二次作業

第一題 p1 1 遞迴寫法,效率低 include 1.寫乙個函式返回引數值為1的個數 比如 15 0000 1111 4個1 程式原型 int count one bits unsigned int value int fuc int x else return 0 void mainp1 p1 ...