【设计】递归下降语法分析程序设计.docxVIP

  • 1
  • 0
  • 约7.26千字
  • 约 14页
  • 2021-09-09 发布于四川
  • 举报

【设计】递归下降语法分析程序设计.docx

精品word学习资料可编辑 名师归纳总结——欢迎下载 编译方法 实 验 报 告 试验名称:简洁得语法分析程序设计 试验要求 功能:对简洁得赋值语句进行语法分析 随机输入赋值语句 ,输出所输入得赋值语句与相应得四元式 采纳递归下降分析程序完成 (自上而下得分析 ) 确定各个子程序得功能并画出流程图 文法如下 : 精品word学习资料可编辑 名师归纳总结——欢迎下载 编码,调试通过 采纳标准输入输出方式;输入输出得样例如下: 【样例输入】 x: =a+b *c/d — (e+ f) 【样例输出】(说明,语句与四元式之间用5个空格隔开) T1 :=b*c (*, b, c,T1) T2:=T1/d (/,T1,d ,T2 ) T3 := a+T 2 (+, a,T 2,T3) T4 :=e+f (+, e,f ,T4) T 5:=T3-T 4 (- ,T3 ,T4,T5) x:=T5 (:= ,T 5,-, x) 【样例说明】程序除能够正确输出四元式外,当输入得表达式错误时,仍应能检测出语法错误,给出相应错误提示; 设计3 -5 个赋值语句测试 实例 ,检验程序能否输出正确得四元式 ;当输入错误得句子时, 检验程序能够给出语法错误得相应提示信息; 报告内容包括 : 递归程序得调用过程 ,各子程序得流程图与总控流程图 ,具体设计 ,3-5个测试用例得程序运行截图及相关说明,有具体注释得程序代码清单等; 目录 1,语法分析递归下降分析算法 .错误 . 未定义书签; 1,1 背景学问 错误 . 未定义书签; 精品word学习资料可编辑 名师归纳总结——欢迎下载 1, 2 排除左递归 .错误 . 未定义书签; 2,具体设计及流程图 错误 . 未定义书签; 2,1 函数 void V ( ) // V -> a| b|c |d|e,,,| z 错误 . 未定义书签; 2, 2 函数 void A ( ) // A — > V:=E 错误 . 未定义书签; 2,3 函数 vo id E() //E — 〉 TE’ 6 2,4 函数 void T( ) // T - FT' .错误 .未定义书签; 2,5 函数vo id E1( ) //E -’> + TE’ | —TE| null .错误 . 未定义书签; 2,6 函数 void T1( ) // T' -〉 *F T'|/ FT'|null 错误 . 未定义书签; 3,测试用例及截图 错误 . 未定义书签; 3,1 测试用例 1 及截图 .错误 .未定义书签; 3,2测试用例 2 及截图 .错误 . 未定义书签;3, 3 测试用例 3 及截图 .错误 .未定义书签; 代码清单 10. 1,语法分析递归下降分析算法 1,1背景学问 无回溯得自上向下分析技术可用得先决条件就是:无左递归与无回溯;无左递归:既没有直接左递归 ,也没有间接左递归; 无回溯: 对于任一非终结符号 U 得产生式右部x 1|x2| ?|xn,其对应得字得首终结符号两两不相交; 假如一个文法不含回路, 也不含以 ε为右部得产生式, 那么可以通过执行排除文法左递归得算法排除文法得一切左递归 (改写后得文法可能含有以 ε为右部得产生式) ; 文法得左递归排除算法 : 1,将文法G得全部非终结符排序为U 1 , U2 , ? ,Un; 2,For( i=1; i+ +; i≥ n) { . f o r j →1ot i- 1 把产生式 Ui →Uj α替换成 Ui →β 1α| β2α|? | βmα; ..其中: Uj → β1| β2 | ? |βm 排除 Ui 产生式中得直接左递归 ; } 3,化简改写之后得文法,删除余外产生式;文法得直接左递归排除公式 : 精品word学习资料可编辑 名师归纳总结——欢迎下载 直接左递归形式 : U→Ux| y; 其中: x, y∈(V N∪V T )* ,y 不以 U 打头;直接左递归得排除 : U→ yU . U .→xU .|ε 直接左递归得一般形式: U→ Ux 1| Ux 2| ? |Ux m|y 1| y2| ? |y n; 其中: xi≠ε , yi 都不以 U 打头. 一般形式直接左递归得排除: U→y1U .| y2 U. | ?| ynU . U .→x1U .| x2U.| ? x| m U.| ε 回溯得排除得前提就是文法不得含有左递归 ,可提左因子来排除回溯; 1 ,2 排除左递归 依据试验中给出得文法 ,进行排除左递归及回溯,得到以下得式子A - V :=E E -〉 TE E- +TE '| — TE’n|ull T — FT’ T-> * FT' |/FT ’ |null F -〉 V|(E) V -

文档评论(0)

1亿VIP精品文档

相关文档