- 0
- 0
- 约1.39万字
- 约 8页
- 2026-02-06 发布于北京
- 举报
编译原理实验报告
小组
一项目目的
1.巩固大三上学期编译原理理论课程的学习成果,加深对编译原理及程序构造过程的理
解。
2.增强程序设计能力。
二项目内容要求
本次实验分为两部分,第一部分是词法分析Lex的构造,第二部分是语法分析
Yacc的构造。另外,根据自己开发的工具,生成C语言子集的词法分析器和语法
分析器。具体内容要求如下:
1.Lex
(1)Lex输入文件的解析
(2)正规表达式的解析
(3)一个正规表达式到NFA的转换算法实现
(4)多个NFA的合并
(5)NFA的确定化和最小化算法实现
(6)返回状态与返回内容的对应
(7)SeuLex应用
2.Yacc
(1)Yacc输入文件的解析
(2)上下文无关文法到对应LR(1)文法的下推自动机的构造
(3)LR(1)文法的下推自动机到相应分析表的构造
(4)LR(1)总控程序的构造(查表程序)
(5)LR(1)到LALR(1)的映射(*)
(6)符号表的构建与相应管理程序
(7)语义动作程序的加入
(8)SeuYacc的应用
其中(*)表示是我们未能完成的功能。
三项目中主要数据结构定义
本次实验中我们使用了大多数STL中的数据结构,具体情况如下:
stack,queue,hash_set,hash_map,set,map,vector,list
1.Lex
Lex中主要数据结构就是关于NFA和DFA图的构造。实验中我们采用自定义结点类
Node来形成图的结点。Node中有两个数据域,一个是边的权值,另一个边所连向的点,
而采用有向图来表示NFA和DFA。具体如下:
vectorlistNodenfa,dfa;
2.Yacc
Yacc中的主要数据结构比较多。
I.对于读进的符号串,用两张表,一张是符符号表,另一张是非符符号表,索引
值为字符串,内容为对应的符号在程序中的内码值,为int型。这种表采用
hash_mapstring,int类型实现。
II.对于产生式,采用自定义结构Producer定义。具体如下:
structProducer
{intleft;vectorintright;};
并在程序中用一个全局数据vectorProducerProducerSet来所有产生式,而在其它
需要使用到产生式的地方全部保存索引值即可,大大缩短所耗内存空间。
III.对于项目集构造算法中的项目,采用自定义类实现。具体如下:
classItem
{
public:
friendbooloperator(constItemit1,constItemit2);
Item(intproducerNum,intcurrentPos);
intgetCurrSym();//返回下一个将要移进的符号,如果已经到达最后,则返回-1,表
示可归约。
intgetNextSym()const;//返回再一下要移进的符号,在求闭包运算中计算搜索符时
使用。
intgetProdN();//返回产生式的编号。
boolisEnd();//是否右部已经全部移进。
boolnextIsEnd()const;//右部是否到达最后一个符号,求闭包运算时用。
voidsetSearchSym(consthash_setintsearchSymbol);
consthash_setintgetSearchSym()const;
voidmove();
private:
intpn;//产生式的编号。
intpos;//此项目的移进位置。
hash_setintsearchSym;//此项目的搜索符,作为公共可以让外部函数first
直接使用
};
四主要思路及算法描述
1.Lex部分
这部分的主要算法就是按照编译原理书上所给的思路进行正规式到NFA的构造,然后是NFA
到DFA的转换,DFA的最小化,最后是DFA整合其余部分到词法分析器代码的输出。具体开
发思路如下:
①正规式到
您可能关注的文档
- 名医药铺推荐纯天然减肚子汤,受众多用户好评.pdf
- 化学备课全案:质量守恒定律教学设计与实践.pdf
- 热转换彩色机技术综述与分类.pdf
- 图文转换:知识讲解与考点分析.pdf
- 酒店自助餐烧腊档卤水猪脸食谱.pdf
- 加工方法与步骤.pdf
- 2015-2016学年度上学期期末水平测试三年级数学试题.pdf
- 鸦片战争、新思想萌发与太平天国运动知识点总结与练习.pdf
- 桥面系及附属结构模板制作与安装工序质量报验单.pdf
- 二元一次方程组解决实际问题:利润与方案分析.pdf
- 中国国家标准 GB/Z 37551.300-2026海洋能 波浪能、潮流能及其他水流能转换装置 第300部分:河流能转换装置发电性能评估.pdf
- GB/T 44937.3-2025集成电路 电磁发射测量 第3部分:辐射发射测量 表面扫描法.pdf
- 中国国家标准 GB/T 44937.3-2025集成电路 电磁发射测量 第3部分:辐射发射测量 表面扫描法.pdf
- 《GB/T 44937.3-2025集成电路 电磁发射测量 第3部分:辐射发射测量 表面扫描法》.pdf
- 中国国家标准 GB/T 44937.1-2025集成电路 电磁发射测量 第1部分:通用条件和定义.pdf
- GB/T 44937.1-2025集成电路 电磁发射测量 第1部分:通用条件和定义.pdf
- 《GB/T 44937.1-2025集成电路 电磁发射测量 第1部分:通用条件和定义》.pdf
- 中国国家标准 GB/T 4937.37-2025半导体器件 机械和气候试验方法 第37部分:采用加速度计的板级跌落试验方法.pdf
- 《GB/T 4937.10-2025半导体器件 机械和气候试验方法 第10部分:机械冲击 器件和组件》.pdf
- 中国国家标准 GB/T 44937.2-2025集成电路 电磁发射测量 第2部分:辐射发射测量TEM小室和宽带TEM小室法.pdf
最近下载
- 2020学年江苏省徐州市中考真题政治.docx VIP
- 血液透析高钾血症的护理查房.pptx VIP
- 顶空进样器操作维修手册惠普课件.pdf VIP
- 小学二年级数学题《图形的剪拼问题大全及答案》.doc VIP
- 2026年度烟台工程职业技术学院单招《数学》试题附参考答案详解(考试直接用).docx VIP
- 数学六年级上册100道口算题大全(全册各类齐全18份).doc VIP
- 干货 _ 高中历史全套思维导图100张.pdf
- 2026年烟台工程职业技术学院单招《数学》试题带答案详解(预热题).docx VIP
- 小学三年级数学题《图形的剪拼问题大全及答案》.doc VIP
- 麦可思2025年中国大学生就业报告_完全详细版.docx VIP
原创力文档

文档评论(0)