欢迎来到天天文库
浏览记录
ID:9935065
大小:274.00 KB
页数:21页
时间:2018-05-16
《简单优先分析法编译原理课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、武汉理工大学《编译原理》课程设计说明书学号:课程设计题目简单优先分析程序的设计学院计算机科学与技术学院专业软件工程专业班级软件工程1002班姓名指导教师何九周2013年1月12日-20-武汉理工大学《编译原理》课程设计说明书课程设计任务书学生姓名:专业班级:软件工程1002班指导教师:何九周工作单位:计算机科学与技术学院题目:简单优先分析程序的设计初始条件:程序设计语言:主要使用C语言的开发工具,或者采用LEX、YACC等工具,也可利用其他熟悉的开发工具。算法:可以根据《编译原理》课程所讲授的算法进行设计。要求完成的主要任务:(包括课程设计工作量及其技术要求,说明书撰写等具体
2、要求)1.明确课程设计的目的和重要性,认真领会课程设计的题目,读懂课程设计指导书的要求,学会设计的基本方法与步骤,学会如何运用前修知识与收集、归纳相关资料解决具体问题的方法。严格要求自己,要独立思考,按时、独立完成课程设计任务。2.主要功能包括:对教材P104中的上下文无关文法,实现它的简单优先分析程序,给出符号串b(aa)b的分析过程。(参考教材P103~106)3.进行总体设计,详细设计:包括算法的设计和数据结构设计。系统实施、调试,合理使用出错处理程序。4.设计报告:要求层次清楚、整洁规范、不得相互抄袭。正文字数不少于0.3万字。包含内容:①课程设计的题目。②目录。③正
3、文:包括引言、需求分析、总体设计及开发工具的选择,设计原则(给出语法分析方法及中间代码形式的描述、文法和属性文法的设计),数据结构与模块说明(功能与流程图)、详细的算法设计、软件调试、软件的测试方法和结果、有关技术的讨论、收获与体会等。④结束语。⑤参考文献。⑥附录:软件清单(或者附盘)。时间安排:消化资料、系统调查、形式描述1天系统分析、总体设计、实施计划3天撰写课程设计报告书1天指导教师签名:2013年1月12日系主任(或责任教师)签名:2013年1月12日-20-武汉理工大学《编译原理》课程设计说明书目录1引言-3-2需求分析-3-3总体设计-3-3.1简单优先关系的定义
4、-4-3.2简单优先分析法的基本思想-4-3.3简单优先关系矩阵流程图-5-3.4简单优先分析法流程图-6-3.5分析器构造-7-4开发工具的选择-7-5详细的算法设计-7-5.1简单优先关系矩阵输出算法-7-5.2字符串读入-8-5.3字符串分析算法-8-5.4优先关系判断算法-9-5.5移近-规约算法-9-5.6分析结果判断-11-6软件调试-11-7软件的测试方法和结果-12-8有关技术的讨论-13-9收获与体会-14-10结束语-14-11参考文献-15-12附录-15--20-武汉理工大学《编译原理》课程设计说明书简单优先分析程序的设计1引言上下文无关文法是形式语言
5、理论中一种重要的变换文法,用来描述上下文无关语言,在乔姆斯基分层中称为2型文法。由于程序设计语言的语法基本上都是上下文无关文法,因此应用十分广泛。简单优先分析法是预先在文法的各种符号(终结符号和非终结符号)之间建立所谓优先关系,而在分析一个句型(指规范句型,下同)时,从左到右依次扫视其中的符号,且每扫视一个符号都检查它和后继符号间的优先关系,以期找到句柄之尾,然后再从此尾符号处回头,进行反向扫描,且每扫视一个符号都检查它和其前的符号间的优先关系,直到找到句柄之头为止。本文将采用简单优先分析法对一个上下文无关文法进行分析,给出文法的简单关系优先矩阵,并对测试用例进行分析。2需求
6、分析本课程设计的目的是为了实现给定上下文无关文法的简单优先分析程序,并给出字符串的分析过程。上下文无关文法G[S]:S::=bAbA::=(B
7、aB::=Aa)测试字符串:b(aa)b3总体设计本文采用简单优先分析法实现指定上下文无关文法的分析程序-20-武汉理工大学《编译原理》课程设计说明书,对于任意字符串给出其分析过程。1.1简单优先关系的定义设G=(VN,VT,P,S)是一已化简的文法,V=VN∪VT,并设Si和Sj是V中的任意两个符号,若G中存在这样的规范句型 α=…SiSj… 则此相邻的两个符号Si,Sj和α的句柄之间的关系必然是下述情况之一: (1)若Si在
8、句柄中,而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)所示),则
此文档下载收益归作者所有