遞歸下降分析法
一、實驗?zāi)康模?br />
根據(jù)某一文法編制調(diào)試遞歸下降分析程序,以便對任意輸入的符號串進(jìn)行分析。本次實驗的目的主要是加深對遞歸下降分析法的理解。
二、實驗說明
1、遞歸下降分析法的功能
詞法分析器的功能是利用函數(shù)之間的遞歸調(diào)用模擬語法樹自上而下的構(gòu)造過程。
2、遞歸下降分析法的前提
改造文法:消除二義性、消除左遞歸、提取左因子,判斷是否為LL(1)文法,
3、遞歸下降分析法實驗設(shè)計思想及算法
為G的每個非終結(jié)符號U構(gòu)造一個遞歸過程,不妨命名為U。
U的產(chǎn)生式的右邊指出這個過程的代碼結(jié)構(gòu):
(1)若是終結(jié)符號,則和向前看符號對照,
若匹配則向前進(jìn)一個符號;否則出錯。
(2)若是非終結(jié)符號,則調(diào)用與此非終結(jié)符對應(yīng)的過程。當(dāng)A的右部有多個產(chǎn)生式時,可用選擇結(jié)構(gòu)實現(xiàn)。
三、實驗要求
(一)準(zhǔn)備:
1.閱讀課本有關(guān)章節(jié),
2.考慮好設(shè)計方案;
3.設(shè)計出模塊結(jié)構(gòu)、測試數(shù)據(jù),初步編制好程序。
(二)上課上機:
將源代碼拷貝到機上調(diào)試,發(fā)現(xiàn)錯誤,再修改完善。第二次上機調(diào)試通過。
(三)程序要求:
程序輸入/輸出示例:
對下列文法,用遞歸下降分析法對任意輸入的符號串進(jìn)行分析:
(1)E->eBaA
(2)A->a|bAcB
(3)B->dEd|aC
(4)C->e|dc
輸出的格式如下:(1)遞歸下降分析程序,編制人:姓名,學(xué)號,班級
(2)輸入一以#結(jié)束的符號串:在此位置輸入符號串例如:eadeaa#
(3)輸出結(jié)果:eadeaa#為合法符號串
注意:
1.如果遇到錯誤的表達(dá)式,應(yīng)輸出錯誤提示信息(該信息越詳細(xì)越好);
2.對學(xué)有余力的同學(xué),可以詳細(xì)的輸出推導(dǎo)的過程,即詳細(xì)列出每一步使用的產(chǎn)生式。
(四)程序思路
0.定義部分:定義常量、變量、數(shù)據(jù)結(jié)構(gòu)。
1.初始化:從文件將輸入符號串輸入到字符緩沖區(qū)中。
2.利用遞歸下降分析法分析,對每個非終結(jié)符編寫函數(shù),在主函數(shù)中調(diào)用文法開始符號的函數(shù)。
您的評論需要經(jīng)過審核才能顯示
有用
有用
有用