編譯程序構(gòu)造實驗報告_第1頁
編譯程序構(gòu)造實驗報告_第2頁
編譯程序構(gòu)造實驗報告_第3頁
編譯程序構(gòu)造實驗報告_第4頁
編譯程序構(gòu)造實驗報告_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

編譯程序構(gòu)造實驗報告目錄TOC\o"1-3"\h\u23638一實驗?zāi)康?114461二實驗要求 131315三實驗環(huán)境選擇 126398四設(shè)計桌面計算器 2108211詞法: 289372語法和語義: 257973測試 330379五自己設(shè)計的語言 4267141詞法: 4214332語法和語義 5121083測試 526293六實驗總結(jié) 6一實驗?zāi)康耐ㄟ^Lex與Yacc(或Flex與Bison)的實習(xí),熟悉和掌握最常用的編譯程序自動產(chǎn)生工具的原理、方法與應(yīng)用。二實驗要求(1)設(shè)計一個小語言,并對你要實現(xiàn)的小語言進行語法等描述;(2)在UNIX環(huán)境或WINDOWS環(huán)境安裝Lex與Yacc(或Flex與Bison)工具;利用Lex與Yacc(或Flex與Bison)工具實現(xiàn)該小語言的編譯程序;提交實驗報告。三實驗環(huán)境選擇32位ubuntu系統(tǒng),F(xiàn)lex軟件,Bison軟件。參考資料:flex與bison(中文版)JohnLevine著東南大學(xué)出版社四設(shè)計桌面計算器題目:用flex和bison設(shè)計一個桌面計算器,目的:熟悉flex,bison操作和其中語法。參考資料:1詞法:+returnADD;-returnSUB;*returnMUL;/returnDIV;(returnOP;)returnCP;|returnABS;\nreturnEOF;[t]/*ignore*/([0-9]*\.?[0-9]+|[0-9]+\.[0-9]*)returnNUMBER;2語法和語義:calclist:/*nothing*/|calclistexpEOL{printf("=%f\n",$2);};exp:factor加減運算優(yōu)先級最低|expADDfactor{$$=$1+$3;}|expSUBfactor{$$=$1-$3;};factor:term乘除法運算優(yōu)先級略低于絕對值|factorMULterm{$$=$1*$3;}|factorDIVterm{$$=$1/$3;};term:NUMBER絕對值計算優(yōu)先級最高|ABSexpABS{$$=$2>=0?$2:-$2;}|OPexpCP{$$=$2;};3測試如test文件中所示,為在ubuntu環(huán)境下的測試結(jié)果。(1)測試方法amakeb./calcc輸入一個包含加減乘除的式子,不用輸入等號。(2)測試結(jié)果acer@acer-Aspire-4738G:~/exp$./calc12*12=144.00000012+12=24.00000014-12=2.00000012/12=1.000000測試結(jié)果無誤,程序正確。五自己設(shè)計的語言根據(jù)上述程序的理解,設(shè)計一個能夠解方程的計算器。1詞法:+returnADD;-returnSUB;*returnMUL;/returnDIV;=returnEQU;\nreturnEOL;[X]returnUNKX;[Y]returnUNKY;[\t]/*ignore*/([0-9]*\.?[0-9]+|[0-9]+\.[0-9]*)returnNUMBER;2語法和語義calclist:|calclistexpEOL{printf("%c=%f\n",my_exp.unk,$2);};exp:UNKADDNUMBEREQUNUMBER{$$=$5-$3;}|NUMBERADDUNKEQUNUMBER{$$=$5-$1;}|UNKSUBNUMBEREQUNUMBER{$$=$5+$3;}|NUMBERSUBUNKEQUNUMBER{$$=$1-$5;}|UNKMULNUMBEREQUNUMBER{$$=$5/$3;}|NUMBERMULUNKEQUNUMBER{$$=$5/$1;}|UNKDIVNUMBEREQUNUMBER{$$=$5*$3;}|NUMBERDIVUNKEQUNUMBER{$$=$1/$5;};UNK:UNKX|UNKY3測試(1)測試方法:amakeb./calc輸入形如X+2=4的一元齊次線性方程,方程未知數(shù)只能在左邊,為X或者Y,運算為加減乘除。整個式子只能有三個運算數(shù)。(2)測試結(jié)果acer@acer-Asp

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論