2022年華東理工大學(xué)編譯原理詞法分析+語法分析實驗報告-n_第1頁
2022年華東理工大學(xué)編譯原理詞法分析+語法分析實驗報告-n_第2頁
2022年華東理工大學(xué)編譯原理詞法分析+語法分析實驗報告-n_第3頁
全文預(yù)覽已結(jié)束

付費下載

下載本文檔

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

文檔簡介

信息科學(xué)與工程學(xué)院__《編譯原理》_實驗報告系別計算機科學(xué)與工程專業(yè)計算機科學(xué)與技術(shù)班級_____________學(xué)號__________姓名____________指導(dǎo)教師2021學(xué)年第二學(xué)期

實驗題目:詞法分析實驗日期:2022.5--2022.6實驗環(huán)境(操作系統(tǒng),開發(fā)語言) 操作系統(tǒng):Windows 開發(fā)語言:C、Java實驗要求用C語言開發(fā)詞法分析程序PL0Compiler。修改PL/0詞法,將其定義為一種新的語言,例如稱其為PL/1語言,并完成PL/1語言的詞法分析程序。實驗步驟用PL/0語言編寫PL/0測試用例源程序,將其命名為Test0.pl。用C\Java語言開發(fā)PL/0詞法分析程序PL0Compiler。PL0Compiler讀入Test0.pl,識別出一個個單詞,并將這些單詞流依序同時輸出到屏幕和文件中。被輸出的每個單詞應(yīng)包括(1)單詞序號(2)單詞字符串(3)單詞類型(4)單詞值(如果是標(biāo)識符,其值是字符串;如果是數(shù),其值是數(shù)值;如果是符號,其值是ASCII代碼…)在程序開發(fā)過程中,應(yīng)設(shè)立斷點,單步運行詞法分析程序,依次輸出一個個單詞。分析和理解詞法分析程序,解釋詞法分析程序中的數(shù)據(jù)和變量變化的原因和輸出結(jié)果。研究其他程序設(shè)計語言,找出與PL/0詞法不同的構(gòu)詞法則(例如C語言的標(biāo)識符的組成規(guī)則與PL/0標(biāo)識符的組成規(guī)則有所不同)。據(jù)此修改PL/0的某些詞法(例如,將PL/0標(biāo)識符組成規(guī)則修改為C語言的標(biāo)識符的組成規(guī)則),將其定義為一種新的語言,例如稱其為PL/1語言。用PL/1語言編寫PL/1測試用例源程序,將其命名為Test1.pl。開發(fā)PL/1詞法分析程序PL1Compiler。(可通過修改原PL0Compiler,實現(xiàn)PL/1語言的詞法分析功能)。PL1Compiler讀入Test1.pl,識別出一個個單詞,并將這些單詞流依序同時輸出到屏幕和文件中。實驗結(jié)果(Test1.pl內(nèi)容,PL1Compiler詞法分析程序輸出的第1張截圖)Test1.pl:consta=6,b=81;VARx,y;procEdurep;procedureq;x:=2;beginx:=1;write(x);end;begincallp;end.PL1Compiler詞法分析程序輸出的截圖:實驗體會(說明新的PL/1語言與PL/0語言不同的詞法之處,程序開發(fā)過程中出現(xiàn)的技術(shù)問題及其解決方法、心得體會等)詞法分析器的主要功能在于過濾掉源程序中的空格、換行、制表符,判斷每個單詞的合法性。如果一個單詞合法,則要返回它的類別和值,從而為語法分析服務(wù);否則,停止分析并報錯。通過本次試驗,了解了詞法分析的主要步驟,就是把標(biāo)識符,保留字區(qū)分,并且能識別出空格,并把數(shù)據(jù)能從文件中讀出來,主要識別標(biāo)識符和保留字,主要通過比較參照一個事先建好的數(shù)組,里面包含了所有的保留字,不在其中的便是標(biāo)識符。輸出分別為單詞序號、單詞字符串、單詞類型、單詞值。改進(jìn)后的詞法分析器的標(biāo)識符可以使用大小寫字母和數(shù)字混合。錯誤的符號用error,notaword表示。保留字也可以用大寫的方式表示。該詞法分析的不足有:對于有2個小數(shù)點的數(shù)字不能報錯。構(gòu)思是可以通過檢測小數(shù)點的個數(shù)來判斷是否是錯誤的數(shù)字。對于一些錯誤也沒有給出是哪類錯誤。心得體會:雖然書上的代碼看起來復(fù)雜且多,但

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論