- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
语法分析器作业
编译原理实验报告
——实验三语法分析器
实验目的
熟悉并掌握语法分析器的工作原理和一般设计方法。通过本实验,进一步提高实际问题分析与解决的能力,以及程序设计能力。
实验要求:
简单语言的语法规则如下:
① S → i := E ;
② S → if C then S
③ S → while C do S
④ C → E E
⑤ C → E = E
以C语言系统为工具,用递归子程序法设计并实现上述简单语言的语法分析器,实现以下功能:
对于给定的简单语言的“句子”,经语法分析,能输出分析过程产生的“产生式”序列(或“语法树”)。能调用“词法分析器”识别出简单语言源程序中的一个个单词符号。
对如上简单语言设计测试用例,使用“简单语言语法分析器”,对该测试用例进行语法分析,给出测试用例的语法分析结果。
实验模块
(1)词法分析,识别单词符号
单词符号的转换图
(2)语法分析器 能识别由加+ 减- 乘* 除/ 乘方^ 括号()操作数所组成的算术表达式,其文法如下:
①S → i := E ;
② S → if C then S
③ S → while C do S
④ C → E E
⑤ C → E = E
使用的算法可以是:预测分析法;
5.实验结果截屏
测试用例为while (a+15)0 do if x2 = 7 then i= z;
6.实验总结
通过这次实验,我对词法分析器有了进一步的了解,把理论知识应用于实验中。也让我重新熟悉了C和C++语言的相关内容,加深了对C、C++语言知识的深化和用途的理解。通过这次语义分析的实验, 我对高级语言的学习有了更深的认识 ,了解得更透彻。
我了解了高级语言转化为目标代码或汇编指令的过程,。对今后的学习将起很大的作用,对以后的编程有很大的帮助. 并且通过此次实验,我了解了LR语法分析的实质和过程。实验虽然只是完成了一个简单的程序,并且程序的主要框架课本上有给出,但在组织程序结构和深入了确上学到了很多,加深对编译原理的理解,掌握编译程序的实现方法和技术。巩固了前面所学的知识。
7.程序源代码
词法分析器
#include stdafx.h
#include Word.h
//构造函数,对数据成员初始化,并将关键字以及运算符读入
Word::Word()
{//打开关键字文件
fstream keywordfile(keyword.txt);
if(!keywordfile)
{
couterror ! cant open keywordfile!endl;
system(pause);
exit(1);
}
//设置临时变量将关键字、符号文件中的内容存储
string tempword;
int tempencode;
string tempre;
int tempvalue;
//开始读关键字文件
while(!(keywordfile.eof()))
{ keywordfiletempwordtempencodetempretempvalue;
keywordlist.push_back(tempword);
keywordencode.push_back(tempencode);
keywordre.push_back(tempre);
keywordcodevalue.push_back(tempvalue);
}
//关闭关键字文件
keywordfile.close();
for(int i=0;ikeywordlist.size();i++)
{coutsetw(16)keywordlist[i]setw(16)keywordencode[i]setw(12)keywordre[i]setw(12)keywordcodevalue[i]endl;
}
fstream signwordfile(signword.txt);
if(!signwordfile)
{ couterror ! cant open signwordfile!endl;
system(pause);
exit(1);
}
//开始读符号文件
while(!(signwordfile.eof()))
{
signwordfiletempwordtempencodetempretempvalue;
signlist.push_back(tempword);
si
您可能关注的文档
- 详细的原位XRD和量热研究硅酸盐的形成.doc
- 详细的拌合站水泥罐搅拌站地基计算.doc
- 详细解剖影视后期制作具体操作流程.doc
- 详细解析汽车发电机工作原理.doc
- 详细解析PhotoShop计算工具的作用.doc
- 详细解述FreeBSD系统的安装与优化.doc
- 详细勘查方案.doc
- 详细讲解HyperV虚拟机的网络配置.doc
- 详细设计与实现.doc
- 详细设计方案.doc
- 电子行业研究:Al以太网趋势明确,看好白盒交换机、交换芯片、PCB、以太网高速连接方案厂商发展.pdf
- 机械行业研究框架专题报告:匠心铸就国重器,自主创新赢未来.pdf
- 生物医药行业:第三批中成药带量采购开始,产品价格降幅及日均费用为中选关键.pdf
- 汽车行业跟踪:特斯拉三季报超预期,经适型车型有望2025年发布.pdf
- 商业航天深度报告:星辰大海,“材艺”相随必威体育精装版完整版本.pdf
- 煤炭:动力煤企稳反弹,关注三季报超预期标的.pdf
- 沪电股份投资兴建AI芯片配套PCB项目,AI产业逻辑不断验证.pdf
- 2023年八年级初中历史德育工作计划(精选8篇).pdf
- 中职生职业规划.pdf
- 乳腺保健科工作制度.pdf
最近下载
- Java EE轻量级框架应用实战—SSM框架(Spring MVC+Spring+MyBatis)(第2版)课件 第7--14章 Spring Bean---百货中心供应链管理系统 .pptx
- 2024年公务员考试必考公共基础知识点复习汇总(共150题).doc
- IEC 60076-1 电力变压器 第1部分:总则.pdf
- 农村宅基地审批资料解读.ppt
- 我国农村职业教育的研究文献统计分析.doc VIP
- 交通安全员-公路篇-第1部分综合知识和能力-综合知识和能力-案例题.docx VIP
- 国企个人述职报告.pptx
- 中药渣资源化利用关键技术与产业化.docx
- 3D打印技术简要介绍.ppt
- 叉车 职业技术培训教材.pdf
文档评论(0)