實驗一、詞法分析程式實驗
專業:商業軟體工程 姓名:卓潤峰 學號:201506110202
一、實驗目的
編制乙個詞法分析程式。
二、實驗內容和要求
1.輸入:源程式字串。
2.輸出:二元組(種別,單詞本身)
3.待分析語言的詞法規則
主要是從左至右逐個字元地對源程式進行掃瞄,產生乙個個單詞序列,用於語法分析
三、實驗方法、步驟及結果測試
1.源程式名:壓縮包檔案(rar或zip)中源程式名cifafenxi.c
可執行程式名:cifafenxi.exe
2.原理分析及流程圖
3.主要程式段及其解釋:
1 #include24.執行結果及分析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 }
四、實驗總結
這是編譯原理這門課的開始程式,講真看這門課真的跟天書一樣,很多東西都是很難理解的,很抽象,像這個詞法編譯器,是老師講了很久才懂得原理,很多功能還不是很完善,有許多要改進的地方,也有很多的bug,想了很久也很難解決問題,不過最後還是完成了這個程式,學到了很多知識,也複習了大一所學的c語言許多語法。
實驗問題:
1.不知道該如何判斷每乙個單元的詞法。
2.如何不斷地進行詞法分析,如何結束。
解決方案:
1.定義乙個新的陣列,並將原字串讀到空格後賦值給這個新的陣列,然後對這個新陣列中儲存的字串進行判斷。
2.利用迴圈,每判斷一次,就將之前判斷的單元刪除,另後面的字串浮到上面來繼續進行判斷,直到原字串剩下『\0』,退出迴圈。
實驗一詞法分析報告
實驗 一 詞法分析實驗 專業 商業軟體工程三班 姓名 鄭錦誠 學號 201506110198 一 實驗目的 詞法分析是編譯的第一階段,它的主要任務是從左至右逐個字元地對源程式進行掃瞄,產生乙個個單詞序列,用於語法分析。二 實驗內容和要求 讓使用者輸入一段程式段,然後逐個讀取字元,將它們拼在一起,獲取...
詞法分析程式實驗報告
實驗一詞法分析程式實驗 專業 商軟2班 姓名 區展翔 學號 201506110183 一 實驗目的 編制乙個詞法分析程式。二 實驗內容和要求 輸入 源程式字串 輸出 二元組 種別,單詞符號本身 三 實驗方法 步驟及結果測試 1.源程式名 詞法分析.c 可執行程式名 詞法分析.exe 2.原理分析及流...
詞法分析程式實驗報告
實驗 一 詞法分析實驗 專業 商業軟體工程 姓名王芷玲 學號201606110246 一 實驗目的 編制乙個詞法分析程式。二 實驗內容和要求 對字串表示的源程式,從左到右進行掃瞄和分解,根據詞法規則,識別出乙個乙個具有獨立意義的單詞符號,以供語法分析之用 發現詞法錯誤,則返回出錯資訊。三 實驗方法 ...