您所在位置: 网站首页 / 编译原理实验报告[合集].docx / 文档详情
编译原理实验报告[合集].docx 立即下载
2025-08-28
约6.4千字
约13页
0
17KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

编译原理实验报告[合集].docx

编译原理实验报告[合集].docx

预览

免费试读已结束,剩余 8 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

编译原理实验报告[合集]

第一篇:编译原理实验报告编译原理实验报告报告完成日期2018.5.30一.组内分工与贡献介绍二.系统功能概述;我们使用了自动生成系统来完成我们的实验内容。我们设计的系统在完成了实验基本要求的前提下,进行了一部分的扩展。增加了声明变量类型、类型赋值判定和声明的变量被引用时作用域的判断。从而使得我们的实验结果呈现的更加清晰和易懂。三.分系统报告;一、词法分析子系统词法的正规式:标识符(|)*十进制整数0|(1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*八进制整数0(1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7)*十六进制整数0x(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)*运算符和分隔符+|*|/|>|=|==;对于标识符和关键字:A5—〉B5C5B5—〉a|b|⋯⋯|y|zC5—〉(a|b|⋯⋯|y|z|0|1|2|3|4|5|6|7|8|9)C5|ε综上正规文法为:S—〉I1|I2|I3|A4|A5I1—〉0|A1A1—〉B1C1|εC1—〉E1D1|εD1—〉E1C1|εE1—〉0|1|2|3|4|5|6|7|8|9B1—〉1|2|3|4|5|6|7|8|9I2—〉0A2A2—〉0|B2B2—〉C2D2D2—〉F2E2|εE2—〉F2D2|εC2—〉1|2|3|4|5|6|7F2—〉0|1|2|3|4|5|6|7I3—〉0xA3A3—〉B3C3B3—〉0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|fC3—〉(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)|C3|εA4—〉+|-|*|/|>|=|==;A5—〉B5C5B5—〉a|b|⋯⋯|y|zC5—〉(a|b|⋯⋯|y|z|0|1|2|3|4|5|6|7|8|9)C5|ε状态图流程图:词法分析程序的主要数据结构与算法考虑到报告的整洁性和整体观感,此处我们仅展示主要的程序代码和算法,具体的全部代码将在整体的压缩包中一并呈现另外我们考虑到后续实验中,如果在bison语法树生成的时候推不出目标的产生式时,我们设计了报错提示,在这个词的位置出现错误提示,将记录切割出来的词在code.txt中保存,并记录他们的位置。以下是我们的主要代码:进制的识别:结果展示:二、语法分析子系统根据选择的语法分析方法进行描述我们使用了递归子程序发,并且对原有的产生式进行了改写,改写后的结果如下:P→LP1|LL→SS→id=E|{P}|ifCthenS|ifCthenS1elseS2|whileCdoS1C→E1C’C’→>E2|E→int8E’|int10E’|int16E’|idE’|TE’→+T|-T||+TE’|-TE’T→int8T’|int10T’|int16T’|idT’|FT’→*F|/F|*FT’|/FT’F→(E)|int8|int10|int16|id简化的语法图:S的语法图:C的语法图:E的语法图:T的语法图:F的语法图:流程图:语法分析子系统的主要数据结构与算法我们采用了自动生成技术,同样在这里也是展示主要的核心功能代码,全部的代码展示在压缩包中:我们在设计时,实现了产生式对应的字符串同时标识产生式定义的int值辅助程序:生成语法树的程序:1.树节点:2.创建新节点3.创建实数类型新节点4.创建标识符类型新节点5.输出语法树三、三地址码生成器算法的基本思想:我们增加了声明变量类型、类型赋值判定和声明的变量被引用时作用域的判断。从而使得我们的实验结果呈现的更加清晰和易懂。在报错的时候,我们会呈现类型、作用域和赋值三种的问题的报错信息。流程图:算法展示:四、实验体会这次实验其实总的来说是让我们更加清晰的理解到了我们所学的内容。有时候我们上课听讲,课下复习写作业的时候,其实看似掌握了所学内容,但实际上并没有亲身体会的操作很难让我们深刻的理解其中的相关意义。通过这次实验,我们能够从根源处了解到了我们所学的内容,并且基于我们理解之后的输出。比如词法分析不能采用空格来区分单词,因为存在加减乘除等运算符和分隔符,使用空格来区分可能会造成错误的分解。又比如我们再在程序设计中,常常体会到效率的重要性。影响词法分析的效率的主要因素是各个状态的分支如何规划。如果每个进来的单词都能在最短的时间和最少的匹配次数内找到其入口,则效率将得到很大程度上的提高。所以由此我们产生了声明变量类型、赋值和作用域的想法,将其放在最后来进行判断,这样可以提高整体的执行效率。另外,这次小组成员彼此不在一个班级,这样从某一方面来说,也加强了我们互相快速熟识并团结协作的能力,有了这种体验,我想我们在今后的生活中,面对这种情况的时候
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

编译原理实验报告[合集]

文档大小:17KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用