![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译原理实验
文章平均质量分 94
裕东方
小菜鸡总有一天会变成大佬
展开
-
编译原理实验一:DFA的编程实现
实验一(一) 基于C语言的TINY编译器与TM虚拟机(1学时)实验目的初步认识编译器系统和目标机,体会系统编程,了解条件编译和增量编程。实验任务获取TINY语言编译器相关源代码。 了解TINY语言定义,可参见文档《TINY语言及其编译器实现》。第一次实验时对TINY语言有大致了解即可,后续实验中会陆续阅读更多TINY语言及其编译器的文档,详细了解其词法、语法、语义、运...原创 2019-01-29 20:59:16 · 9038 阅读 · 5 评论 -
编译原理实验二:词法分析程序
实验目的学习和掌握词法分析程序手工构造状态图及其代码实现方法。实验任务阅读已有编译器的经典词法分析源程序; 用C或C++语言编写一门语言的词法分析器。实验内容阅读已有编译器的经典词法分析源程序。选择一个编译器,如:TINY,其它编译器也可(需自备源代码)。阅读词法分析源程序,理解词法分析程序的手工构造方法——状态图代码化。尤其要求对相关函数与重要变量的作用与功能进...原创 2019-01-29 20:59:28 · 12670 阅读 · 0 评论 -
编译原理实验三:NFA确定化和DFA最小化
(一)NFADFA(2小时)实验目的学习和掌握将NFA转为DFA的子集构造法。实验任务(1)存储NFA与DFA;(2)编程实现子集构造法将NFA转换成DFA。实验内容(1)确定NFA与DFA的存储格式。要求为3个以上测试NFA准备好相应有限自动机的存储文件。(可利用实验一(二)的基础)(2)用C或C++语言编写将NFA转换成DFA的子集构造法的程...原创 2019-01-29 20:59:42 · 11178 阅读 · 1 评论 -
编译原理实验四:语法分析程序
(一)学习经典的语法分析器(1学时)实验目的学习已有编译器的经典语法分析源程序。实验任务阅读已有编译器的经典语法分析源程序,并测试语法分析器的输出。实验内容(1)选择一个编译器,如:TINY,其它编译器也可(需自备源代码)。(2)阅读语法分析源程序,加上你自己的理解。尤其要求对相关函数与重要变量的作用与功能进行稍微详细的描述。若能加上学习心得则更好。T...原创 2019-01-29 20:59:53 · 15683 阅读 · 7 评论 -
编译原理实验五:编译器自动生成工具
一、词法分析程序自动生成工具的使用(4小时)实验目的学习使用词法分析自动工具LEX。实验任务使用LEX工具实现编译器的词法分析程序。实验内容(a) 学习文档“LEX的用法.pdf”。(b) 准备一个LEX工具,如这里提供的“FLEX251.ZIP”,可上网搜索下载更新的版本。(c) 以文档中提供的4个输入文件为例,测试LEX工具。有些版本的FLEX需要在辅助程...原创 2019-04-12 22:11:54 · 6066 阅读 · 8 评论 -
编译原理实验六:语义分析器
(一)学习经典的语义分析器(2小时)实验目的学习已有编译器的经典语义分析源程序。实验任务阅读已有编译器的经典语义分析源程序,并测试语义分析器的输出。实验内容(1)选择一个编译器,如:TINY或PL/0,其它编译器也可(需自备源代码)。(2)阅读语义分析源程序,加上你自己的理解。尤其要求对相关函数与重要变量的作用与功能进行稍微详细的描述。若能加上学习心得则更好。TI...原创 2019-04-12 22:34:35 · 17773 阅读 · 5 评论 -
编译原理实验七:中间代码生成器
实现一门语言的中间代码生成器(4小时)实验目的通过本次实验,加深对中间代码生成的理解,学会编制中间代码生成器。实验任务用C、JAVA或其他语言编写一门语言的中间代码生成器,所选实现语言应与之前语言保持一致。实验内容实现中间代码生成器,可以将任一源语言(源语言尽量与前期实验中的源语言保持一致)转化成三地址码(或其他中间表示形式)。 准备2~3个测试用例,测试你的程序,...原创 2019-04-13 12:08:02 · 16516 阅读 · 7 评论