编译原理语法制导翻译器 带文档 一、需求分析……………………………………………… 2 二、设计目的……………………………………………… 2 三、设计思想……………………………………………… 2 3、1语法制导定义…………………………………… 2 3、2设计思想………………………………………… 3 3、3基本思路………………………………………… 4 四、设计内容……………………………………………… 4 五、设计流程图…………………………………………… 5 六、程序调试与测试……………………………………… 6 6、1调试过程中出现的问题以及解决方案………… 6 6、2测试过程………………………………………… 6 6、3用户说明………………………………………… 8 七、个人任务……………………………………………… 8 八、课程设计总结………………………………………… 9 九、参考文献……………………………………………… 9 9、1参考书籍………………………………………… 9 9、2参考网址……………………………………… 10 十、程序代码清单………………………………………… 10
2020-04-25 21:41:35 194KB 编译原理语法制导翻译器
1
基于语法制导翻译的表达式转换编译器 中缀表达式转后缀表达式,含文档。
1
用C#实现了编译原理中词法分析、LL1分析、SLR1分析和LR1分析,同时用LR1分析实现了语法制导翻译,程序中已提供了示例代码,可以对代码进行分析。需用VS2008才能打开项目
2019-12-21 22:19:40 277KB 编译原理 语法分析 LL(1) SLR(1)
1
三、设计要求 1、使用模块化设计思想来设计该编译器; 2、词法分析模块用于读入输入串,并将其转换成供语法分析模块使用的记号流。其中包括滤掉空格和注释、识别常数、识别标识符和关键字等功能; 3、要求在语法分析模块中利用语法制导翻译技术完成具体的中缀表达式到后缀表达式的翻译,其中包括按前述翻译器的规格说明构建对应表达式、项、因子的非终结符expr、term和factor的函数以及检查记号是否匹配的函数;并在不匹配时调用错误处理模块; 4、要求符号表管理模块主要完成符号表对应数据结构的具体实现功能; 5、错误处理模块负责报告错误信息及位置,并终止分析过程; 6、输出模块完成翻译后所得到的后缀表达式的输出。 四、运行结果 1、从键盘输入任意中缀表达式,如: 4 - 5 * 6 DIV 4 + 8 MOD 2 输出相应的后缀表达式: 456*4DIV-82MOD+ 1、 若键盘输入串为非中缀表达式时,如: 4 !+* 5 - 6 DIV 4 + 8 MOD 2 输出相应语法错误报告信息,并停止语法分析,如: line 1 : compiler error !
1
类C语言编译器,基本上实现了主要功能的C语言语法,词法分析使用状态转移,语法使用LR(1)方法,自动生成ACTION和GOTO转移表。自顶向下的语法制导翻译,可以生成各种类型的表达式(包括布尔,算术,逻辑等等),循环中的while,选择中的if else 和if等,功能比较强大,对于应付编译原理课程设计足足有余。此代码是本人课程设计的心血。
1