詞法分析器實驗報告(共9頁)_第1頁
詞法分析器實驗報告(共9頁)_第2頁
詞法分析器實驗報告(共9頁)_第3頁
詞法分析器實驗報告(共9頁)_第4頁
詞法分析器實驗報告(共9頁)_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上杭州電子科技大學 班級: 專業(yè):計算機科學與技術(shù) 實 驗 報 告【實驗名稱】 實驗一詞法分析實驗一、實驗目的 設計、編制并調(diào)試一個詞法分析程序,加深對詞法分析原理的理解。二、實驗內(nèi)容2.1 待分析的簡單詞法(1)關(guān)鍵字:所有的關(guān)鍵字都是小寫 begin if then while do end(2)運算符和界符:= + - * / = = = ; ( ) $(3)其他單詞是標識符(ID)和整型常數(shù)(NUM),通過以下正規(guī)式定義:ID = letter (letter | digit)*NUM = digit digit*(4)空格有空白、制表符和換行符組成??崭褚话阌?/p>

2、來分隔ID、NUM、運算符、界符和關(guān)鍵字,詞法分析階段通常被忽略。2.2 各種單詞符號對應的編碼(類別):表1 各種單詞符號對應的編碼單詞符號編碼單詞符號編碼begin1:=17if218then320while422end6=23Letter (letter|digit)*10=24digit digit*11;25+13(26-14)27*15$0/162.3 詞法分析程序的功能:輸入:所給文法的源程序字符串。輸出:二元組(編碼,值)構(gòu)成的序列。其中:syn為單詞種別碼; token為存放的單詞自身字符串; num為整型常數(shù)。例如:對源程序begin x:=9; if x9 then x:

3、=2*x+1/3; end $的源文件,經(jīng)過詞法分析后輸出如下序列:(1,begin) (10,x) (17,:=) (11,9) (25,;) (2,if)三、算法思想框圖算法的基本任務是從字符串表示的源程序中識別出具有獨立意義的單詞符號,其基本思想是根據(jù)掃描到單詞符號的第一個字符的種類,拼出相應的單詞符號。在這里用”#”代替”$”。4、 實驗要求1. 寫出程序框圖、自動機。2寫出程序源代碼,并調(diào)試通過,輸出實驗結(jié)果。3完成實驗報告及總結(jié)。五、個人心得通過該實驗,主要有以下幾方面收獲: 1、 對實驗原理有更深的理解。二、 對詞法分析在實踐中的應用有深刻的理解。在實踐的基礎上,把所學過的知識應

4、用于實際應用,更深刻的理解了詞法分析以及編譯原理的實際應用。三、 通過本次編譯原理課程設計,激發(fā)了我學習的積極性,培養(yǎng)了我獨立發(fā)現(xiàn)問題、分析問題,解決問題的能力。更增強我與同學交流溝通和共同解決問題合作的能力。四、驗收時有少許錯誤,問題在于最后輸出結(jié)果是時候,是輸入相同大小的字符數(shù)組,導致出現(xiàn)空格。六、代碼與運行結(jié)果(1)源代碼#include#include#includechar prog80,token8;char ch;int syn,p,i,n,row,num=0;char *s6=begin,if,then,while,do,end; void scaner() for(n=0;n

5、=a&ch=A&ch=0&ch=a&ch=A&ch=Z) tokeni+=ch; ch=progp+; tokeni+=0; p-; syn=10; for(n=0;n=0&ch=0&ch32767) syn=-1; /判斷運算符或者分界符 else switch(ch) case) syn=20; tokeni+=ch; else if(ch=) syn=21; tokeni+=ch; else syn=18; p-; break; case:i=0;tokeni+=ch; ch=progp+; if(ch=) syn=23; tokeni+=ch; else syn=22; p-; bre

6、ak; case:i=0;tokeni+=ch; ch=progp+; if(ch=) syn=17; tokeni+=ch; else syn=17; p-; break; case+:syn=13;token0=ch;break; case-:syn=14;token0=ch;break; case*:syn=15;token0=ch;break; case/:syn=16;token0=ch;break; case=:syn=24;token0=ch;break; case;:syn=25;token0=ch;break; case(:syn=26;token0=ch;break; ca

7、se):syn=27;token0=ch;break; case#:syn=0;token0=ch;break; casen:syn=-2;break; default: syn=-1;break; int main() p=0; row=1; printf(Please input string:n); do ch=getchar(); progp+=ch; while(ch!=#); if(prog0=0&prog0=a&prog1=z)|(prog1=A&prog1=Z) printf(Error!n); else p=0; do scaner(); switch(syn) case 11: cout(syn,num)endl; break; case -1: coutError in row

溫馨提示

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

最新文檔

評論

0/150

提交評論