編譯原理課程實踐環(huán)節(jié)

編譯原理課程實踐環(huán)節(jié)

ID:33577704

大?。?06.18 KB

頁數(shù):15頁

時間:2019-02-27

編譯原理課程實踐環(huán)節(jié)_第1頁
編譯原理課程實踐環(huán)節(jié)_第2頁
編譯原理課程實踐環(huán)節(jié)_第3頁
編譯原理課程實踐環(huán)節(jié)_第4頁
編譯原理課程實踐環(huán)節(jié)_第5頁
資源描述:

《編譯原理課程實踐環(huán)節(jié)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、《編譯原理》課程實踐環(huán)節(jié)如果你對本課程實踐環(huán)節(jié)的題目、要求或內(nèi)容等方面的設(shè)計有任何意見或建議,歡迎聯(lián)系中山大學(xué)計算機科學(xué)系李文軍老師(lnslwj@zsu.edu.cn)。實驗題目:程序設(shè)計語言SP的自動排版工具在正式開始你的實驗之前,請務(wù)必花足夠時間仔細閱讀完本文檔關(guān)于實驗的描述與約定!實驗?zāi)康谋緦嶒炇且粋€基于編譯原理課程核心教學(xué)內(nèi)容的綜合性實驗,利用一門簡單程序設(shè)計語言的處理工具設(shè)計與實現(xiàn),幫助學(xué)生通過實踐深入理解和牢固掌握編譯技術(shù)中詞法分析、語法分析、語法制導(dǎo)翻譯等重要環(huán)節(jié)。本實驗的主要目

2、標(biāo)包括:1、掌握詞法分析器的工作原理與構(gòu)造方法,并能夠推廣到對文本的串匹配搜索等其他同類型應(yīng)用。2、掌握詞法分析器自動生成工具lex或類似工具的工作原理與使用方法,學(xué)習(xí)如何編寫一個lex源文件以解決詞法分析或模式匹配問題,初步體會軟件自動化的基本思路。3、掌握遞歸下降的預(yù)測分析方法以及語法制導(dǎo)的翻譯技術(shù),學(xué)習(xí)如何根據(jù)BNF語法定義和應(yīng)用需求設(shè)計一個翻譯模式,并利用高級程序設(shè)計語言的遞歸機制實現(xiàn)一個翻譯模式。4、掌握語法分析器自動生成工具yacc或類似工具的工作原理與使用方法,學(xué)習(xí)如何編寫一個ya

3、cc源文件以解決語法分析及語法制導(dǎo)翻譯問題,進一步加深體會軟件自動化的基本思路。5、通過加強設(shè)計方面的討論與編程風(fēng)格的實踐,提高對面向?qū)ο笤O(shè)計的認識,養(yǎng)成良好的編程習(xí)慣與規(guī)范,并學(xué)會多個工程文檔的組織與提交。李文軍:《編譯原理》課程實踐環(huán)節(jié)程序設(shè)計語言SPSP是一門支持簡單算術(shù)功能的玩具型程序設(shè)計語言,易于分析和實現(xiàn),適合作為語言實現(xiàn)初學(xué)者的處理對象。SP語言是一門大小寫無關(guān)語言,其程序中僅允許使用33個變量,其名字分別為X、Y、Z、X0、…、X9、Y0、…、Y9、Z0、…、Z9;所有變量和表達

4、式的類型均為整數(shù)類型。SP語言僅支持四類語句,其語義描述如下:READvar從控制臺讀入一個int類型的值,并保存在變量var中WRITEexpr將表達式expr的值輸出到控制臺LETvar=expr將變量var的當(dāng)前值設(shè)置為表達式expr的值GOTOlabel[IFexpr]跳轉(zhuǎn)到指定的行;如果指定表達式expr,則僅當(dāng)expr≧0時才跳轉(zhuǎn)SP語言語法定義的完整BNF描述如下:::=

5、::=

6、ber>:;

7、;::=READ

8、WRITE

9、LET=

10、GOTO

11、GOTOIF::=

12、+

13、-::=

14、*

15、/::=()

16、

17、::=

18、

19、::=

20、::=a

21、b

22、...

23、z

24、A

25、B

26、...

27、Z::=0

28、1

29、...

30、9例如,以下SP源程序可用于計算兩個非負整數(shù)X和Y的最大公約數(shù):READX;READY;100:GOTO200IFY-X;LETX=X-Y;GOTO100;200:GOTO300IFX-Y;LETY=Y-X;GOTO100;300:WRITEX;-2-李文軍:《編譯原理》課程實踐環(huán)節(jié)實驗

31、一:熟悉BNF定義SP語言的BNF定義給出了該語言語法方面的形式化規(guī)格說明。仔細閱讀SP語言的BNF定義,并完成以下實驗內(nèi)容。實驗步驟步驟1.1、編寫SP源程序遵循SP語言的BNF定義,編寫兩個語法正確的SP源程序。要求在這兩個源程序中,用到SP語言的所有語法構(gòu)造,即你編寫的兩個源程序加在一起覆蓋了SP語言提供的語句、表達式、變量、數(shù)值等各種構(gòu)造。如果有可能,你編寫的SP源程序最好是有其實際意義的,譬如一個求階乘的程序或一個求最小公因子的程序等。注意,這里僅要求你編寫語法正確的SP源程序,并未強

32、制要求這些源程序是語義正確的。然后,參考SP語言的BNF定義,編寫兩個含有語法錯誤的SP源程序。要求在這兩個源程序中,既包含一些詞法錯誤(例如:不合法的標(biāo)識符、不合法的常量等),也包含一些語法錯誤(例如:括號不匹配、表達式缺少運算符、表達式缺少操作數(shù)、命令缺少關(guān)鍵字等)。這些語法正確的和語法錯誤的SP源程序?qū)⒃诤笫鰧嶒灢襟E中作為你的測試用例。步驟1.2、討論SP程序的二義性根據(jù)SP語言的BNF定義,討論SP程序的二義性問題,即討論根據(jù)上述BNF定義的上下文無關(guān)文法是否存在二義性。如果你認為該文法

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。