實驗報告一 詞法分析程式

2022-06-04 18:45:09 字數 2654 閱讀 5064

實驗一、詞法分析程式實驗

專業:商業軟體工程   姓名:卓潤峰  學號:201506110202

一、實驗目的

編制乙個詞法分析程式。

二、實驗內容和要求

1.輸入:源程式字串。

2.輸出:二元組(種別,單詞本身)

3.待分析語言的詞法規則

主要是從左至右逐個字元地對源程式進行掃瞄,產生乙個個單詞序列,用於語法分析

三、實驗方法、步驟及結果測試

1.源程式名:壓縮包檔案(rarzip)中源程式名cifafenxi.c

可執行程式名:cifafenxi.exe

2.原理分析及流程圖

3.主要程式段及其解釋:

1 #include2

3 #include45

char one[9][10]=;67

intnumber;89

1011

int fenxi(char a,int

p)12

134445}

4647

for(j=0;j<9;j++)

4849

if(strcmp(b,one[j])==0)50

5160

61else

6263 q=1;64

65if(q==1)66

6774

757677}

7879

if((b[0]>=48)&&(b[0]<=57

))80

81102

103}

104105

}106

107if((b[0]=='

+')||(b[0]=='

-')||(b[0]=='

*')||(b[0]=='

/')||(b[0]=='

=')||(b[0]=='

(')||(b[0]=='

)')||(b[0]=='#'

))108

109122

123switch(b[0

])124

125146

147 printf("

(%d,%s)

",j,b);

148149

return

p;150

151}

152153

if((b[0]=='

:')||(b[0]=='

>

')||(b[0]=='

154155

180181 printf("

(%d,%s)

",j,b);

182183

return

p;184

185}

186187

else

188189

210211

}212

213214

215}

216217

218219

void maopao(char a,int

p)220

221230

231232

233main()

234235

while(a[0]!='\0'

);256

257 }

4.執行結果及分析

四、實驗總結

這是編譯原理這門課的開始程式,講真看這門課真的跟天書一樣,很多東西都是很難理解的,很抽象,像這個詞法編譯器,是老師講了很久才懂得原理,很多功能還不是很完善,有許多要改進的地方,也有很多的bug,想了很久也很難解決問題,不過最後還是完成了這個程式,學到了很多知識,也複習了大一所學的c語言許多語法。

實驗問題:

1.不知道該如何判斷每乙個單元的詞法。

2.如何不斷地進行詞法分析,如何結束。

解決方案:

1.定義乙個新的陣列,並將原字串讀到空格後賦值給這個新的陣列,然後對這個新陣列中儲存的字串進行判斷。

2.利用迴圈,每判斷一次,就將之前判斷的單元刪除,另後面的字串浮到上面來繼續進行判斷,直到原字串剩下『\0』,退出迴圈。

實驗一詞法分析報告

實驗 一 詞法分析實驗 專業 商業軟體工程三班 姓名 鄭錦誠 學號 201506110198 一 實驗目的 詞法分析是編譯的第一階段,它的主要任務是從左至右逐個字元地對源程式進行掃瞄,產生乙個個單詞序列,用於語法分析。二 實驗內容和要求 讓使用者輸入一段程式段,然後逐個讀取字元,將它們拼在一起,獲取...

詞法分析程式實驗報告

實驗一詞法分析程式實驗 專業 商軟2班 姓名 區展翔 學號 201506110183 一 實驗目的 編制乙個詞法分析程式。二 實驗內容和要求 輸入 源程式字串 輸出 二元組 種別,單詞符號本身 三 實驗方法 步驟及結果測試 1.源程式名 詞法分析.c 可執行程式名 詞法分析.exe 2.原理分析及流...

詞法分析程式實驗報告

實驗 一 詞法分析實驗 專業 商業軟體工程 姓名王芷玲 學號201606110246 一 實驗目的 編制乙個詞法分析程式。二 實驗內容和要求 對字串表示的源程式,從左到右進行掃瞄和分解,根據詞法規則,識別出乙個乙個具有獨立意義的單詞符號,以供語法分析之用 發現詞法錯誤,則返回出錯資訊。三 實驗方法 ...