- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理语法分析实验报告
南华大学 计算机科学与技术学院
实 验 报 告
( 2007 ~2008 学年度 第二学期 )
编译原理 课程名称
语法分析 实验名称
20054350227 姓名 寻友旭 学号
专业 软件工程 班级 软件工程052班
地点 6—413 教师 陈星
南华大学计算机科学与技术学院 编译原理实验报告 1.实验目的及要求
编制一个递归下降分析程序,实现对词法分析程序所提供得单词序列得语法检查和结构分析。
软件、硬件环境
VC6.0
要求:
利用C语言编制递归下降分析程序,并对简单语言进行语法分析。
待分析的简单语言得语法:
E,E+T | E-T | T
T,T*F | T/F |F
F,(E) | i
输入单词串,以“#”结束,如果是文法正确的句子,则输出成功信息,打印“Accept!
Right Expression!”,否则输出“Error!!!”。
语法分析:
a) ?E=E+T=E+T*F=E+T*(E)即有E=E+T*(E)存在左递归。用直接改写法消除左递归,得到如下:
E , TE’
E’ , +TE’ | ?TE’|ε
T , FT’
T’ , *FT’ | /FT’|ε
F , (E) | i
b) 对于以上改进的方法。可得:
对于E’: FIRST( E’ )=FIRST(+TE’)?FIRST(-TE’)?{ε}={+,?,ε} 对于T’: FIRST( T’ )=FIRST(*FT’)?FIRST(/FT’)?{ε}={*,?,ε} 而且: FIRST( E ) = FIRST( T ) = FIRST( F )=FIRST((E))?FIRST(i)={(,i } 由此我们容易得出各非终结符的FOLLOW集合如下:
FOLLOW( E )= { ),#}
FOLLOW(E’)= FOLLOW(E)={ ),#}
FOLLOW( T )= FIRST(E’)\ε?FOLLOW(E’)={+,?,),#}
FOLLOW( T’ ) = FOLLOW( T ) ={+,?,),#}
FOLLOW( F )=FIRST(T’)\ε?FOLLOW(T’)={*,?,+,?,),#} 由以上FOLLOW集可以我们可以得出SELECT集如下:
对E SELECT(E,TE’)=FIRST(TE’)=FIRST(T)={ (,i } 对E’ SELECT(E’ ,+TE’)={ + }
SELECT(E’ , ?TE’)={ ? }
SELECT(E’ ,ε)={ε,),#}
对T SELECT(T,FT’)={(,i}
对T’ SELECT(T’ ,*FT’)={ * }
SELECT(T’ , ?FT’)={ ? }
SELECT(T’ ,ε)={ε,+,?,),#}
对F SELECT(F,(E) )={ ( }
SELECT(F,i)={ i }
? SELECT(E’ ,+TE’)?SELECT(E’ , ?TE’)?SELECT(E’ ,ε)=, SELECT(T’ ,*FT’)?SELECT(T’ , ?FT’)?SELECT(T’ ,ε)=, SELECT(F,(E) )?SELECT(F,i)= ,
由上可知,有相同左部产生式的SELECT集合的交集为空,所以文法是LL(1)文法。因此,转化后的文法可以用递归下降分析法作语法分析。
2 软件工程052班 20054350227 寻友旭
南华大学计算机科学与技术学院 编译原理实验报告
2.实验步骤
1、 分析试验资料,结合书本得出实验大体思路;
2、 根据资料画出语法分析程序的流程图;
3、 根据流程图与程序大体框架完善程序;
4、 将代码输入电脑中,调试;
5、 根据资料中数据测试程序得基本功能;
6、 根据测试结果,设计测试数据完善程序;
7、 根据实验结果分析总结。
3. 实验内容
词法分析程序的主要子函数模块流程图
\
3 软件工程052班 20054350227 寻友旭
南华大学计算机科学与技术学院 编译原理实验报告
程序:
#include stdio.h
#includedos.h
#includestdlib.h
#includestring.h
char a[50] ,b[50],d[200],e[10];
char ch;
int n1,i1=0,flag=1,n=5; int total=0;
int E();
int E1();
int T();
int G();
int S();
int F();
void input();
void input1();
v
您可能关注的文档
- 酒店营销培训资料.doc
- 有关舵机和直流电机的PID控制算法.doc
- Visio流程图符号含义以及标准规则.doc
- 大学生心理压力调查问卷.doc
- 2025年中国麻醉设备附件市场调查研究报告.docx
- 2024年07月[浙江]浙江民泰商业银行社会招考(77)笔试历年参考题库附带答案详解 .docx
- 2024年07月[湖南]平安银行长沙分行招考(722)笔试历年参考题库附带答案详解 .docx
- 2024年07月[浙江]杭州银行总行资产托管部招考笔试历年参考题库附带答案详解 .docx
- 2024年07月[西藏]光大银行社会招考(拉萨)笔试历年参考题库附带答案详解 .docx
- 2025年中国机器人货物承载软件行业投资前景及策略咨询研究报告.docx
- 2025年中国医用空气净化器行业投资前景及策略咨询研究报告.docx
- 2024年07月[湖北]汉口银行仙桃支行招考笔试历年参考题库附带答案详解 .docx
- 2024年07月[湖南]长沙银行常德分行社会招考笔试历年参考题库附带答案详解 .docx
- 2024年07月[福建]兴业银行泉州分行社会招考(721)笔试历年参考题库附带答案详解 .docx
- 2024年07月[浙江]泰顺农商银行“双一流”等高校毕业生招考笔试历年参考题库附带答案详解 .docx
- 2024年07月[浙江]浙江台州银行总行社会招考(716)笔试历年参考题库附带答案详解 .docx
- 2024年07月[浙江]浙江民泰商业银行总行职能管培生校园招考(73)笔试历年参考题库附带答案详解 .docx
- 2024年07月中国光大银行苏州分行风险管理部部门副职或助理招聘1人笔试历年参考题库附带答案详解 .docx
- 2024年07月中国光大银行西安分行管理部门产品经理招聘笔试历年参考题库附带答案详解 .docx
- 2024年07月中国光大银行零售与财富管理部远程银行中心社区营销招聘笔试历年参考题库附带答案详解 .docx
文档评论(0)