泸州市建设规划局网站百度推广登陆平台
2026/4/7 2:06:18 网站建设 项目流程
泸州市建设规划局网站,百度推广登陆平台,python改写WORDPRESS,网站项目的推广1.实验目的 设计一个非递归预测分析器#xff0c;实现对表达式语言的分析#xff0c;理解自上而下语法分析方法的基本思想#xff0c;掌握设计非递归预测分析器的基本方法。 2.实验要求 建立文法及其LL(1)分析表表示的数据结构#xff0c;设计并实现相应的预测分析器实现对表达式语言的分析理解自上而下语法分析方法的基本思想掌握设计非递归预测分析器的基本方法。2.实验要求建立文法及其LL(1)分析表表示的数据结构设计并实现相应的预测分析器对源程序经词法分析后生成的二元式代码流进行预测分析如果输入串是文法定义的句子则输出“是” 否则输出“否”。3.实验内容1文法描述及其 LL(1)分析表表达式语言XL的语法规则如下1程序 → 表达式2 |表达式程序3 表达式→ 表达式 项4 |项5 项 → 项 * 因式6 |因式7 因式 → num_or_id8 | (表达式)将该语言的文法转换为如下的LL(1)文法1 prgm → expr;prgm ’ 8 term → factorterm ’2 prgm ’ → prgm 9 term ’ → *factorterm ’3 prgm ’ → ε 10 term ’ → ε4 expr → term expr ’ 11 factor → (expr)5 expr → ε 12 f actor → num6 expr ’ → term expr ’ 13 system_goal → prgm7 expr ’ → ε该LL(1)文法的LL(1)分析表如下对文法中每个文法符号指定一个常数值符号编码表如下2文法及其LL(1)分析表的数据结构文法的产生式可用数组Yy_pushtab[]存放。数组的第一个下标是产生式号第一个产生式的序号为0每列按逆序存放该产生式右部各符号的常数值并以0结束。对于该表达式语言XL的LL(1)分析表可用数组Yy_d[]存放。第一个下标是非终结符数值第二个下标是终结符数值数组元素的值为0表示接受1表示产生式号-1表示语法错。数组Yy_pushtab[]的具体内容及表示如下数组Yy_d[]的具体内容及表示如下3预测分析器总控程序结构预测分析器总控程序使用上面的两个表Yy_pushtab、Yy_d和一个分析栈元素类型为int其结构如下初始化/* 把开始符号的常数值压入分析栈输入指向第一个输入符号 */ while(分析栈非空) { if(栈顶常数表示一个终结符) if(该常数与输入符号的常数不等) 报语法错 else { 把一个数从栈顶弹出 advance 读下一输入符 } else { /* 栈顶的常数表示一个非终结符 */ what_to_doYy_d[栈顶常数][当前输入符号的常数] if(what_to_do-1) 报语法错 else { 把栈顶元素弹出栈 把Yy_pushtab[what_to_do]中列出的全部常数压入分析栈 } } }请实现该程序。在程序中添加输出栈内容的功能以便和手工模拟分析过程作比较。4用预测分析器和手工模拟两种方式对文法的句子12进行分析。综合分析过程可用下表表示。5请考虑如何设计并实现 LL(1)分析表的自动生成程序。4.实验结果1LL(1)文法2预测分析表3手工模拟结果截图显示输入串为12;经过预测分析后判断是文法定义的句子说明实验成功。5.实验源码点击下方链接下载实验源码资源编译原理大作业3-非递归预测分析-实验源码资源-CSDN下载

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询