第4次上机—语法分析2 目的:熟练掌握自下而上的语法分析方法,并能用C++程序实现。 要求: 1. 使用如下文法: E ® E+T | T T ® T*F | F F ® (E) | id 2. 对于任意给定的输入串(词法记号流)进行语法分析,要求采用LR分析器来完成。手工构造LR分析表,利用移进-归约分析算法(P69 图3.12)输出(P70 表3.8)对应的动作部分。如: 输入:id*+id/(id+id)# 输出:移进 按 F->id归约 按 T->F归约 移进 error …… 3. 要有一定的错误处理功能。即对错误能提示,并且能在一定程度上忽略尽量少的记号来进行接下来的分析。 例如: 从状态0开始的记号流为:bm 将b移进之后,栈里的情况应该为: 0 b 2 此时查表发现 action[2,m]=error 输出打印:error 把A和状态1相继压入栈,用户指针后移到FOLLOW(A)对应的元素继续分析。 4. 利用P92页的表3.13的方式将错误进行分类提示,即给出具体的出错信息。 扩展: 在已有文法的基础上再加上减法“-”和除法“/”对应的产生式构成最终的文法。从而使得记号流可以处理带括号的加、减、乘、除四则运算。
2019-12-21 21:58:39 5KB LR
1
本代码的功能完成对LR(1)文法分析的程序·
2019-12-21 21:57:22 9KB LR(1)
1
深度学习作业lr_utils和对应数据集,对应官网上给的代码,加了一些注释,个人对代码的理解,希望对大家有用,代码保存路径见本人博客
2019-12-21 21:54:23 2.68MB deep learnin
1
LR(0)完整的语法分析方法(拓广文法、识别活前缀状态机、LR0表、识别字符串)内有word详细说明
2019-12-21 21:47:30 832KB 编译原理 LR0 状态机 LR0表
1
deeplearning.ai课程作业中部分使用的dnn_utils_v2,lr_utils,planar_utils,testCases,testCases_v2的代码,后续还会接着上传其他所需要使用的。
2019-12-21 21:43:04 4KB deeplearning dnn_utils_v2
1
详细内容:https://blog.csdn.net/weixin_39644536/article/details/101054795 简单计算器的编译器的设计与实现,利用 LR 分析法编制、调试其语法分析程序,生成的中间代码为后缀表达式, 通过语法制导定义和后缀表达式进行计算。编制好分析程序后计若干用例,上机 测试并通过所设计的分析程序。 算术表达式的 LR 分析分为扩展文法,构造识别活动前缀的 DFA 图,判断 是否有冲突,若有冲突,则消除冲突和构造 LR 分析表等步骤。
2019-12-21 21:39:53 2.24MB 编译原理 LR分析 语法制导 编译器
1
这个是用C++做的小型编译器,资源中有源代码、文件、实验报告等,编译器完成的功能有词法分析和两个语法分析——LR(0)和LL1,程序是通过文本输入的然后输出结果在文本中和屏幕上
2019-12-21 21:38:13 165KB 编译原理实验 C++ LR(0) LL1
1
重庆理工大学 编译原理 课程设计。用java编写,有漂亮的界面,支持词法分析,正规式转换、LL(1)分析、LR(0)分析、算符优先分析
2019-12-21 21:32:36 189KB 语法分析
1
内含完整的逻辑回归数据集,已经逻辑回归训练,训练完成后的模型测试部分(包括代码和完成数据集),用python3编码,可直接运行。训练完成后可直接显示点的颜色和分布,以及训练得到的直线。
2019-12-21 21:30:46 8.1MB 机器学习 逻辑回归 LR regression
1
目的:充分理解语义分析的方法及相关语义计算的执行时机。 要求: 1.以S属性的语法制导定义为基础,将下表的语义规则嵌套在语法分析的过程中,即实现语法制导的翻译过程。 产 生 式 语 义 规 则 L ® E n print (E.val) E ® E1 + T E.val := E1 .val + T.val E ® T E.val := T.val T ® T1 * F T.val := T1.val * F.val T ® F T.val := F.val F® (E) F.val := E.val F ® digit F.val := digit.lexval 2.以词法分析和语法分析部分的上机结果为基础,添加语义分析部分。即以LR文法为基础。当进行产生式归约时执行对应的语义动作。 3.输入: 5+3+8*2 输出:24 4. 若输入有误,如:3++2 则应提示:重新输入! 5. 由于输入串是具体的数值,因此应调用相应的词法分析的功能。 扩展: 1. 对浮点数和科学计数法的表示也能完成上述的操作。 2. 增加减法和除法(也可继续扩展其他运算)对应的产生式,并能计算其语义结果。 3. 在邮箱中第五次上机的文件夹中有两个压缩包,用递归下降法实现的程序在压缩包“recursion_calculator.rar”中,用非递归的预测分析方法实现的程序在压缩包“predict_calculator.rar”中。可以任选其一作为基础进行改进,增加减法和除法的操作,写出改进后的文法,输出表达式的结果。
2019-12-21 21:25:10 7KB 编译 上机 代码 语义分析
1