- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
个简单编译器前端的实现
小记: 其实这个程序是编译原理这门课的综合实验,前段时间
我申请免试又失败了,原因是有缺课,平时分不够,早上赖 床现在尝到苦果我也是醉了……没办法,逼上梁山,只好攻 克这个大 boss 以拿下免试资格。
选了一个最简单的文法,分析了 1 个多星期,终于决定
开始要写的时候时间已经很紧了。
去实验室通宵了一晚,在宿舍熬了一晚,睡了 3 个小时
就起来去验收了。还好是通过了,没白费劲。
不得不说,编译原理就是烧脑,知识点都比较抽象,如
果数据结构和算法的基础打得不牢的话,实现起来会感到吃 力。
再次感觉到了基础的重要性,这也是一个收获吧。
总的来说,相比较之前实现形式化的 des加密算法,抽
象的编译器更有难度,写完也更能让你感觉到提高。
ps:程序仅供参考,时间有限,没做太多测试。
功能:
给定一个简单语言的文法描述,本程序是该语言的编译
口口 、八亠」4
器前端。
输入一个符合该文法规则的源文件,输出三地址形式的
中间代码。
具体功能有词法分析,语法分析,分析流程显示,错误
提示等。
程序运行结果:
源程序:
分析过程: 生成中间代码(三地址形式)
分析过程:
文法:
文法(消除左递归后)
Program->BEGIN Stmt-List END
Stmt-List->Stmt Stmt-List'
Stmt-List'->Stmt Stmt-List' | .
Stmt->Assign-stmt
Assign-stmt->ID = Expr
Expr->Term Expr'
Expr'->Add-Op Term Expr' | .
Term->Factor Term'
Term'->Multiple-Op Factor Term' | .
Factor->( Expr ) | ID | NUM
Add-Op->+ | -
Multiple-Op->* | /
FIRST 集
First(Program)={BEGIN}
First(Stmt-List)={ID}
First(Stmt-List')={ ID, e
First(Stmt)={ ID}
First(Assign-stmt)={ ID}
First(Expr)={(,ID,NUM}
First(ExpC={+,-,门
First(Term)={(,ID,NUM}
First(Term')={*,/,
First(Factor)={(,ID,NUM}
First(Add-Op)={+,-}
First(Multiple-Op)={*,/}
FOLLOW 集
Follow(Program)={$}
Follow(Stmt-List)={END}
Follow(Stmt-List')={ END}
Follow(Stmt)={ ID,END}
Follow(Assign-stmt)={ ID,END }
Follow(Expr)={ ID,END ,)}
Follow(Expr')={ ID,END , )}
Follow(Term)={+,-, ID,END , )}
Follow(Term')={ +,-, ID,END , )}
Follow(Factor)={ *,/,+,-, ID,END , )}
Follow(Add-Op)={(,ID,NUM}
Follow(Multiple-Op)={ (,ID,NUM }
预测分析表:
代码:
1 // 词法分析中
1 // 词法分析中
' '代表空白字符, 包括换行符, 空格, 制表
2 //
2 // 源程序格式: 1、 行只能有一条语句; 2、程序中可
17
17
以有注释
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stack>
#include <stdlib.h>
using namespace std;
10 char src[1000010];//存储源代码11 char TokenList_kind[1010][100];//词法单元流 之类别12 int TokenList_value[1010];//
10 char src[1000010];
//存储源代码
11 char TokenList_kind[1010][100];
//词法单元流 之
类别
12 int TokenList_value[1010];
//词法单元流 之 值
13 char WordList[1010][100];
// 符号表 -- 由
token_value 指向
您可能关注的文档
- 【讲义】痕迹概述.docx
- 【资料员】工程质量监理评估报告【建筑工程施工+常用表格】.docx
- 【退休返聘与工伤】退休返聘人员是否适用《工伤保险条例》实证研究每天学一点法律.docx
- 一、电子信息制造业.docx
- 一个GIS研究生的自白.docx
- 一个乡村推广员的O2O创业梦想.docx
- 一个卖不动的三线项目,建筑方案这样优化可多赚8千万.docx
- 一个天才操盘手的自白(上).docx
- 一个新颖的电子商务实践教学案例:智能快递柜选址分析-最新教育文档.docx
- 一个物流工人的一天.docx
- 报刊广告产业政府战略管理与区域发展战略研究咨询报告.docx
- 摄像头产业规划专项研究报告.docx
- 挖掘机市场发展分析及行业投资战略研究报告.docx
- 捕捞设备项目商业计划书(2024-2030).docx
- 抗生素行业兼并重组机会研究及决策咨询报告.docx
- 插秧机行业发展分析及投资价值研究咨询报告.docx
- 护手霜产业政府战略管理与区域发展战略研究报告.docx
- 干电池市场前景分析及投资策略与风险管理研究报告(2024-2030).docx
- 床上用品市场发展分析及行业投资战略研究报告(2024-2030).docx
- 整体橱柜市场前景分析及投资策略与风险管理研究报告(2024-2030).docx
1亿VIP精品文档
相关文档
最近下载
- 新能源汽车基础知识讲解PPT模板(完整版)课件.pptx
- 中药奶茶创业计划书.pptx
- 2024年全国两会精神课件.pptx VIP
- 精细化工工艺学课件.pptx
- 2024年新苏教版六年级下册科学全册知识点梳理.doc
- 2020施工现场临时用电安全技术规范.docx
- AP物理C力学 2019年真题 附答案和评分标准 AP Physics C Mechanics 2019 Real Exam with Answers and Scoring Guidelines.pdf VIP
- 部编版小学语文三年级下册第五单元集体备课教材解读分析.pptx
- 党史学习教育-五四运动唤醒民众酝酿建党各地响应反帝反封工运高潮PPT课件(带内容).pptx VIP
- 基于stm32单片机自动迎客门设计.docx
文档评论(0)