- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理课程实验报告
实验2:句法分析
姓名 李晨阳 院系 软件学院 学号 1123730105 任课教师 陈鄞 指导教师 实验地点 软件学院三楼机房 实验时间 实验课表现 出勤、表现得分 实验报告
得分 实验总分 操作结果得分 一、需求分析 得分 要求:采用至少一种句法分析技术(LL(1)、SLR(1)、LR(1)或LALR(1))对类高级语言中的基本语句(至少包括函数定义、变量说明、赋值、循环、分支等语句)进行句法分析。阐述句法分析系统所要完成的功能。
句法分析器从词法分析器获得一个词法单元的并验证这个串源语言的文法生成。
程序,语法分析器会语法分析,并传递给编译器其他部分,进一步处理’
E’→+TE’|ε
?T→FT’
T’→*FT’|ε
F→i|(E)
预测分析表
i
+
*
(
)
#
E
→TE’
TE’
E’
→TE’
→ε
→ε
T
→FT’
→FT’
T’
→ε
→FT’
→ε
→ε
F
→i
→(E)
三、系统设计 得分 要求:分为系统概要设计和系统详细设计。
系统概要设计:给出必要的系统宏观层面设计图,如系统框架图、数据流图、功能模块结构图等以及相应的文字说明。
(2)系统详细设计:对如下工作进行展开描述
核心数据结构的设计
初始化分析桟
public void setFenxi()
{
// 初始化分析栈
fenxi = new String[20];
fenxi[0] = #;
fenxi[1] = E;
}
初始化分析表
public void setP()
{
for (int i = 0; i 5; i++)
{
for (int j = 0; j 6; j++)
{
P[i][j] = error;
}
}
P[0][0] = -TE;
P[0][3] = -TE;
P[1][1] = -+TE;
P[1][4] = -ε;
P[1][5] = -ε;
P[2][0] = -FT;
P[2][3] = -FT;
P[3][1] = -ε;
P[3][2] = -*FT;
P[3][4] = -ε;
P[3][5] = -ε;
P[4][0] = -i;
P[4][3] = -(E);
}
主要功能函数说明
public boolean judge()
预测分析过程函数,所输入字符是否符合规定文法并打印分析过程
四、系统实现及结果分析 得分 要求:对如下内容展开描述。
系统实现过程中遇到的问题;
输出该句法分析器的分析表;
针对一测试程序输出其句法分析结果;
输出针对此测试程序对应的语法错误报告;
对实验结果进行分析。
注:其中的测试样例需先用已编写的词法分析程序进行处理。
‘
测试:i*i+(i+i)#
测试i((i+
指导教师评语:
日期:
文档评论(0)