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