- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简单优先分析法编译原理课程设计
学 号: 0121210680121
课 程 设 计
题 目 简单优先分析程序的设计 学 院 计算机科学与技术学院 专 业 软件工程 班 级 软件工程1201班 姓 名 范维 指导教师 何九周
2014 年 12 月 26 日
课程设计任务书
学生姓名: 范维 专业班级: 软件1201班
指导教师: 何九周 工作单位:计算机科学与技术学院
题 目:
初始条件:
程序设计语言:主要使用C语言的开发工具,或者采用LEX、YACC等工具,也可利用其他熟悉的开发工具。算法:可以根据《编译原理》课程所讲授的算法进行设计。
要求完成的主要任务: (包括课程设计工作量及其技术要求,说明书撰写等具体要求)
明确课程设计的目的和重要性,认真领会课程设计的题目,读懂课程设计指导书的要求,学会设计的基本方法与步骤,学会如何运用前修知识与收集、归纳相关资料解决具体问题的方法严格要求自己,要独立思考,按时独立完成课程设计任务。 1天
系统分析、总体设计、实施计划 3天
撰写课程设计报告书 1天
指导教师签名: 2014年 12月 26日
系主任(或责任教师)签名: 2014年 12月 26日
目录
1 引言 1
2 需求分析 1
3 总体设计 2
3.1 简单优先关系的定义 2
3.2 简单优先分析法流程图 3
3.3 简单优先关系矩阵流程图 4
3.4 分析器构造 5
4 开发工具的选择 6
5 详细的算法设计 6
5.1用二维数组存取优先级矩阵 6
5.2字符串移进规约分析 7
5.3简单优先关系矩阵输出算法 7
5.4移近-规约算法 8
5.5字符串优先关系判断 10
6 软件调试 11
7 软件的测试方法和结果 12
8 收获与体会 13
9 结束语 13
10 参考文献 14
本科生课程设计成绩评定表 15
简单优先分析程序的设计
引言
简单优先分析法是预先在文法的各种符号 (终结符号和非终结符号)之间建立所谓优先关系,而在分析一个句型 (指规范句型,下同)时,从左到右依次扫视其中的符号,且每扫视一个符号都检查它和后继符号间的优先关系,以期找到句柄之尾,然后再从此尾符号处回头,进行反向扫描,且每扫视一个符号都检查它和其前的符号间的优先关系,直到找到句柄之头为止。设G=(VN,VT,P,S)是一已化简的文法,V=VN∪VT,并设Si和Sj是V中的任意两个符号,若G中存在这样的规范句型
α=…SiSj…
则此相邻的两个符号Si,Sj和α的句柄之间的关系必然是下述情况之一:
(1) 若Si在句柄中,而Sj不在句柄中 (如图42(a)所示),则Si显然为句柄的尾符号,故G中必有形如A→…Si的产生式,使Si先于Sj被归约。此时,我们就说符号Si优于Sj,且记为Si· Sj。此外,由于Sj出现在规范句型的句柄之右,故可知Sj必为终结符号。
(2) 若Si与Sj同时处于α的句柄之中 (如图42(b)所示),则G中必有形如A→…SiSj…的产生式,使Si和Sj同时被归约。此时,我们就说Si和Sj有相同的优先关系,且记为Si=·Sj。
(3) 若Sj在句柄中,而Si不在句柄之中 (如图42(c)所示),则Sj显然为句柄的头符号,故G中必有形如A→Sj…的产生式,使Sj先于Si被归约。此时就Si和Sj的优先关系而言,我们说Si低于Sj且记为Si·Sj。
(4) 若Si和Sj均不在句型α的句柄之中,由于Si和Sj已相邻地在α中出现,则必有G的另一规范句型β,使Si和Sj在β中相邻地出现,且与β的句柄的关系有上述三种情况之一。然而,也可能有这样的情况,对G中的某些符号序偶(Sr,St)而言,G中并不存在任何使Sr和St相邻出现的句型,此时我们就说Sr和St间不存在任何优先关系
简单优先关系矩阵流程图
分析器构造
分析栈 输入流
开发工具的选择
开发环境:eclipse
开发语言:Java
详细的算法设计
5.1用二维数组存取优先级矩阵
static {
for(int i=0;itoken.length;i++){
map.put(token[i], i);
}
for(int i=0;itoken.length;i++){
for(int j=0;jtoken.length;j+
原创力文档


文档评论(0)