資源描述:
《編譯原理—實(shí)驗(yàn)指導(dǎo)書-1》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、《編譯原理》實(shí)驗(yàn)指導(dǎo)書17《編譯原理》實(shí)驗(yàn)指導(dǎo)書目錄實(shí)驗(yàn)一、詞法分析程序設(shè)計(jì)3實(shí)驗(yàn)一、遞歸下降語法分析程序設(shè)計(jì)517《編譯原理》實(shí)驗(yàn)指導(dǎo)書實(shí)驗(yàn)一、詞法分析程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康耐ㄟ^設(shè)計(jì)、開發(fā)一個(gè)高級語言的詞法分析程序,理解編譯程序中詞法分析器的實(shí)現(xiàn)原理,掌握高級程序設(shè)計(jì)語言中的各類單詞的詞法分析方法,加深對詞法分析原理(包括正規(guī)文法、正規(guī)表達(dá)式、有限自動機(jī)、NFA到DFA的轉(zhuǎn)換、DFA的最小化)的理解,提高詞法分析方法的實(shí)踐能力。二、實(shí)驗(yàn)內(nèi)容及要求1.選擇一種熟悉的高級語言(如C語言,Sample語言等),根據(jù)該高級語言的詞法規(guī)則,總結(jié)其單詞種類與各類單詞的結(jié)構(gòu)特征;設(shè)計(jì)、編寫
2、、調(diào)試一個(gè)詞法分析子程序。本實(shí)驗(yàn)以Sample語言為例。2.將該源程序的源文件經(jīng)詞法分析后輸出以二元組形式(單詞種別碼,單詞符號的屬性值)表示的單詞符號序列。3.編寫的程序具有一定的查錯(cuò)能力。提交的實(shí)驗(yàn)報(bào)告中要有實(shí)驗(yàn)名稱、實(shí)驗(yàn)?zāi)康摹?shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)程序清單、調(diào)試過程和運(yùn)行結(jié)果,程序的主要部分做出功能說明,并有實(shí)驗(yàn)收獲體會或改進(jìn)意見等內(nèi)容。4.實(shí)驗(yàn)前請仔細(xì)閱讀實(shí)驗(yàn)預(yù)習(xí)提示,提示中程序僅供參考三、實(shí)驗(yàn)預(yù)習(xí)提示1.Sample語言的字符集1)Σ::=
3、
4、2)Σ::=
5、
6、3)::
7、=A
8、B
9、C
10、……
11、x
12、y
13、z4)::=0
14、1
15、2
16、……
17、95)::=+
18、-
19、*
20、/
21、=
22、<
23、>
24、(
25、)
26、:
27、;
28、,
29、’
30、.2.Sample語言的單詞1)::=
31、
32、
33、
34、2)::=and
35、begin
36、bool
37、char
38、const
39、do
40、else
41、end
42、false
43、for
44、if
45、input
46、integer
47、not
48、or
49、output
50、program
51、read
52、real
53、repeat
54、then
55、to
56、true
57、until
58、var
59、whil
60、e
61、write3)::=
62、
63、4)::=
64、
65、
66、5)::=
67、+
68、-17《編譯原理》實(shí)驗(yàn)指導(dǎo)書1)::=
69、2)::=
70、.
71、.e
72、.E3)::=true
73、false4)::=<Σ>
74、<Σ>5)::
75、=’’6)::=
76、
77、7)::=+
78、-
79、*
80、/8)::=>
81、<
82、<>
83、>=
84、<=
85、==9)::=and
86、or
87、not10)::=/*
88、*/
89、=
90、(
91、)
92、:
93、;
94、,
95、’
96、.1.Sample語言程序舉例(1)/*thisisasampleprogramwritinginsamplelanguage*/(2)Programexample1;(3)/*usedforillustratingcompilingprocess*/?(4)var(5)a,b,c:integer;(6)x:cha
97、r;(7)begin(8)if(a+c*3>b)and(b>3)thenc:=3;(9)x:=2+(3*a)-b*c*8;(10)forx:=1+2to3dob:=100;(11)whilea>bdoc:=5;(12)repeata:=10;untila>b;(13)end.#2.詞法分析器的功能和輸出格式詞法分析器的功能是輸入以字符串表示的源程序,從左向右掃描每行源程序的符號,拼成單詞,換成統(tǒng)一的二元式(單詞種別碼,單詞符號的屬性值)表示。對給定的程序通過詞法分析器識別一個(gè)個(gè)單詞符號,并以二元式(單詞種別碼,單詞符號的屬性值)顯示,本程序是通過對給定路徑的文件的分析后以單詞
98、符號和文字提示顯示),本實(shí)驗(yàn)中,采用單詞種別碼是一符一種種別碼的方式。類別單詞種別碼類別單詞種別碼關(guān)鍵字and1運(yùn)算符+28begin2-29bool3*30char4/31const5<32do6>33else7<=3417《編譯原理》實(shí)驗(yàn)指導(dǎo)書end1>=28false2==29for3<>30if4標(biāo)識符id31input5常數(shù)整常數(shù)32integer6實(shí)常數(shù)33not7字符常數(shù)34or8布爾常數(shù)35output9分界符=36program10;37read11,38real12‘39repeat