資源簡介
實(shí)驗(yàn)一:詞法分析程序
一、實(shí)驗(yàn)?zāi)康?
??? 通過設(shè)計(jì)編制調(diào)試一個(gè)具體的詞法分析程序,加深對詞法分析原理的理解。并掌握在對程序設(shè)計(jì)語言源程序進(jìn)行掃描過程中將其分解為各類單詞的詞法分析方法。
編制一個(gè)讀單詞過程,從輸入的源程序中,識別出各個(gè)具有獨(dú)立意義的單詞,即基本保留字、標(biāo)識符、常數(shù)、運(yùn)算符、分隔符五大類。并依次輸出各個(gè)單詞的類型碼及單詞符號的自身值。(遇到錯(cuò)誤時(shí)可顯示“Error”,然后跳過錯(cuò)誤部分繼續(xù)顯示)
二、實(shí)驗(yàn)要求
用C或C++寫一個(gè)簡單的詞法分析程序,程序可以滿足下列要求:
1、能分析如下幾種簡單的語言詞法
(1) 標(biāo)識符: ID=letter(letter|digit)*
(2) 關(guān)鍵字(全部小寫)
main int float double char if then else switch case break continue while do for
(3)整型常量:NUM=digit digit*
(4)運(yùn)算符
= + - * / < >= ; ( )? :
(5)空格由空白、制表符和換行符組成,用以分隔ID、NUM、運(yùn)算符等,字符分析時(shí)被忽略。
2、單詞符號和相應(yīng)的類別碼
假定單詞符號和相應(yīng)的類別碼如下:
單詞符號 種別碼
int 1
= 17
float 2
< 20
if 3
24
標(biāo)識符 10
>= 25
整型常量 11
; 26
+ 13
( 27
- 14
) 28
* 15
? 29
/ 16
: 30
3、詞法分析程序?qū)崿F(xiàn)的功能
輸入:單詞序列(以文件形式提供),輸出識別的單詞的二元組序列到文件和屏幕
輸出:二元組構(gòu)成: (syn,token或sum)
其中: syn 為單詞的種別碼
token 為存放的單詞自身符號串
sum 為整型常數(shù)
例:
源程序: int ab; float ef=20;
ab=10+ef;
輸出:
(保留字--1,int)
(標(biāo)識符--10,ab)
(分號--26,;)
(保留字--2,float)
(標(biāo)識符--10,ef)
(等號--17,=)
(整數(shù)--11,20)
(分號--26,;)
(標(biāo)識符--10,ab)
(等號--17,=)
(整數(shù)--11,10)
(加號--13,+)
(標(biāo)識符--10,ef)
(分號--26,;)
4、自己準(zhǔn)備測試數(shù)據(jù)存放于TestData.txt文件中,測試數(shù)據(jù)中應(yīng)覆蓋有以上5種數(shù)據(jù),測試結(jié)果要求以原數(shù)據(jù)與結(jié)果對照的形式輸出并保存在Result.txt中,同時(shí)要把結(jié)果輸出到屏幕。
5、提前準(zhǔn)備
① 實(shí)驗(yàn)前,先編制好程序,上機(jī)時(shí)輸入并調(diào)試程序。
準(zhǔn)備好多組測試數(shù)據(jù)(存放于文件TestData.txt中)。
6、寫出實(shí)驗(yàn)報(bào)告
報(bào)告格式:要求有實(shí)驗(yàn)名稱、實(shí)驗(yàn)?zāi)康摹?shí)驗(yàn)要求、實(shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)小結(jié)。
其中實(shí)驗(yàn)內(nèi)容包括算法分析、程序流程圖及程序代碼。
代碼片段和文件信息
評論
共有 條評論