编译原理
文章平均质量分 96
以编译原理各个实验开始入手,设计词法分析、语法分析、语义分析的源码详细解析,最终实现一个基于C-语言的编译器,且实现配套模拟器运行编译后的代码。
Flechazo_z
继续努力~
展开
-
编译原理 语义分析器
实验五 语义分析器一、实验目的二、实验任务三、实验内容(一)学习经典的语义分析器1.选择一个编译器2.阅读语义分析源程序并理解3.理解符号表的定义4.测试语义分析器(二)实现一门语言的语义分析器四、系统设计(C-语言的语义分析器)1.完成C-语言的符号表的定义设计。规划类型检查/推论的实现方法。1.1.文件结构1.2.重要数据结构(符号表的设计)1.3.符号表的组成1.4.符号表图示1.5.简单规划设计2.仿照前面学习的语义分析器,编写选定语言的语义分析器。2.1.主函数main2.2.Semantic_p原创 2021-05-23 21:16:29 · 6981 阅读 · 1 评论 -
编译原理 编译器自动生成工具
编译原理实验四 编译器自动生成工具一、实验目的二、实验任务三、实验内容(一)词法分析程序自动生成工具的使用1.学习LEX工具的用法2.生成LEX版本的TINY词法分析器,与其它部分组合成一个完整的TINY语言编译器,并完成测试验证。(参见tiny编译器的使用.ppt)(二)语法分析程序自动生成工具的使用1.学习YACC工具的用法2.生成YACC版本的TINY语法分析器,与其它部分组合成一个完整的TINY语言编译器,并完成测试验证。四、系统设计1.编写某语言(如:C-语言)的词法描述文件,生成其词法分析器,并原创 2021-05-19 00:06:34 · 2482 阅读 · 0 评论 -
编译原理 语法分析程序
编译原理实验三 语法分析程序第一部分、 学习经典的语法分析器一、实验目的二、实验任务三、实验内容1.选择一个编译器,掌握它的语法分析程序。2.阅读语法分析源程序。尤其要求对相关函数与重要变量的作用与功能进行稍微详细的描述。3.测试语法分析器。对TINY语言要求输出测试程序的字符形式的抽象语法树。(手工或编程)画出图形形式的抽象语法树。第二部分——实现一门语言的语法分析器(3学时)一、实验目的二、实验任务三、系统设计1.语言确定2.完成C-语言的BNF文法到EBNF文法的转换。3.为每一个将要写成递归下降函数原创 2021-05-17 23:10:07 · 6531 阅读 · 3 评论 -
编译原理 NFA确定化与DFA最小化
编译原理实验二 NFA确定化与DFA最小化一、实验目的二、实验任务三、实验内容1.NFA确定化2.DFA最小化四、实验准备1.NFA、DFA的存储格式2.测试样例的选择3.文件存储格式(以第三个样例为例)五、实验设计1.NFA确定化程序1.1.init( )——NFA的初始化(从in.txt文件中读取数据)1.2. count_closure(T) -- 状态T的闭包的计算1.3.todfa( ds )—— NFA转为DFA最主要的函数1.4.jcdfa( ) ——检查程序得到的DFA是否正确1.5.pat原创 2021-05-16 22:44:33 · 14210 阅读 · 1 评论 -
编译原理 Cminus词法分析程序
编译原理实验一 Cminus词法分析程序一、实验目的二、实验任务三、实验内容1.在虚拟机中观察各种词法/语法分析器1.1.虚拟机实验环境安装1.2.TINY编译器与TM虚拟机1.3.手写词法分析器cifa1.4.flex构造词法分析器与bison构造语法分析器2.阅读已有编译器的经典词法分析源程序。2.1.选择TINY编译器,阅读并分析其词法分析源程序2.2.理解词法分析程序的手工构造方法——状态图代码化**2.3.整个词法分析程序的构造方法总结(心得)**3.确定今后其他实验中要设计编译器的语言3.1.根原创 2021-05-15 16:05:27 · 2168 阅读 · 0 评论 -
编译原理大设计——基于Cminus虚拟机(TINY虚拟机改进版)的目标代码可运行的Cminus编译器
HNU编译原理实验六基于TINY虚拟机的可运行的C-编译器这个实验挺难的,按照HNU实验文档的意思应该是将TINY的虚拟机进行改造,做成可以运行自己的C-编译器编译成的伪指令实验六 代码生成器HNU编译原理实验六基于TINY虚拟机的可运行的C-编译器一、 实验目的二、 实验任务三、 实验内容(一) 学习经典的代码生成器1. 选择一个编译器2. 阅读TM虚拟机的有关文档,了解TM机的指令结构与寻址方式等相关内容2.1. TM基本结构2.2. TM指令集2.3. TM虚拟机实现2.4. TM虚拟机流程图原创 2021-03-29 19:28:47 · 1665 阅读 · 0 评论