歡迎來到天天文庫
瀏覽記錄
ID:14328767
大?。?32.10 KB
頁數:17頁
時間:2018-07-28
《編譯原理—實驗指導書-1》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、《編譯原理》實驗指導書17《編譯原理》實驗指導書目錄實驗一、詞法分析程序設計3實驗一、遞歸下降語法分析程序設計517《編譯原理》實驗指導書實驗一、詞法分析程序設計一、實驗目的通過設計、開發(fā)一個高級語言的詞法分析程序,理解編譯程序中詞法分析器的實現原理,掌握高級程序設計語言中的各類單詞的詞法分析方法,加深對詞法分析原理(包括正規(guī)文法、正規(guī)表達式、有限自動機、NFA到DFA的轉換、DFA的最小化)的理解,提高詞法分析方法的實踐能力。二、實驗內容及要求1.選擇一種熟悉的高級語言(如C語言,Sample語言等),根據該高級語言的詞法規(guī)則,總結其單詞種類與各類單詞的結構特征;設計、編
2、寫、調試一個詞法分析子程序。本實驗以Sample語言為例。2.將該源程序的源文件經詞法分析后輸出以二元組形式(單詞種別碼,單詞符號的屬性值)表示的單詞符號序列。3.編寫的程序具有一定的查錯能力。提交的實驗報告中要有實驗名稱、實驗目的、實驗內容、實驗程序清單、調試過程和運行結果,程序的主要部分做出功能說明,并有實驗收獲體會或改進意見等內容。4.實驗前請仔細閱讀實驗預習提示,提示中程序僅供參考三、實驗預習提示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、w
60、hile
61、write3)::=
62、
63、4)::=
64、
65、
66、5)::=
67、+
68、-17《編譯原理》實驗指導書1)::=
69、2)::=
70、.
71、.e
72、.E3)::=true
73、false4)::=<Σ>
74、<Σ>5)75、R>::=’’6)::=76、77、7)::=+78、-79、*80、/8)::=>81、<82、<>83、>=84、<=85、==9)::=and86、or87、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)97、x:char;(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.詞法分析器的功能和輸出格式詞法分析器的功能是輸入以字符串表示的源程序,從左向右掃描每行源程序的符號,拼成單詞,換成統一的二元式(單詞種別碼,單詞符號的屬性值)表示。對給定的程序通過詞法分析器識別一個個單詞符號,并以二元式(單詞種別碼,單詞符號的屬性值)顯示,本程序是通過對給定路徑的文件的98、分析后以單詞符號和文字提示顯示),本實驗中,采用單詞種別碼是一符一種種別碼的方式。類別單詞種別碼類別單詞種別碼關鍵字and1運算符+28begin2-29bool3*30char4/31const5<32do6>33else7<=3417《編譯原理》實驗指導書end1>=28false2==29for3<>30if4標識符id31input5常數整常數32integer6實常數33not7字符常數34or8布爾常數35output9分界符=36program10;37read11,38real12‘39repeat
75、R>::=’’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)
97、x:char;(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.詞法分析器的功能和輸出格式詞法分析器的功能是輸入以字符串表示的源程序,從左向右掃描每行源程序的符號,拼成單詞,換成統一的二元式(單詞種別碼,單詞符號的屬性值)表示。對給定的程序通過詞法分析器識別一個個單詞符號,并以二元式(單詞種別碼,單詞符號的屬性值)顯示,本程序是通過對給定路徑的文件的
98、分析后以單詞符號和文字提示顯示),本實驗中,采用單詞種別碼是一符一種種別碼的方式。類別單詞種別碼類別單詞種別碼關鍵字and1運算符+28begin2-29bool3*30char4/31const5<32do6>33else7<=3417《編譯原理》實驗指導書end1>=28false2==29for3<>30if4標識符id31input5常數整常數32integer6實常數33not7字符常數34or8布爾常數35output9分界符=36program10;37read11,38real12‘39repeat
此文檔下載收益歸作者所有