编译原理课程设计报告--算符优先分析表生成模拟.doc

编译原理课程设计报告--算符优先分析表生成模拟.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计(论文)任务书 软件学院 学 院   软件工程  专 业  07-1  班    一、课程设计(论文)题目 算符优先分析表生成模拟    二、课程设计(论文)工作自2010年6月20 日起至 2010 年 6月 25日止。 三、课程设计(论文) 地点: 四、课程设计(论文)内容要求: 1.本课程设计的目的 1、使学生增进对编译原理的认识,加强用程序设计语言实现编译算法能力。 2、进一步培养学生编译器设计的思想,加深对编译原理和应用程序的理解,针对编译过程的重点和难点内容进行编程,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格,并综合使用程序设计语言、数据结构和编译原理的知识,熟悉使用开发工具VC6.0 或JAVA。 2.课程设计的任务及要求 1)基本要求: 动态模拟算法的基本功能是: (1)输入一个给定文法,及FIRSTVT和LASTVT集; (2)输出算符优先分析表生成算法; (3)输出算法优先分析表构造过程的过程。 2)课程设计论文编写要求 1)要按照书稿的规格打印誊写课设报告; 2)报告分为封面、课程设计任务书(本文档)分析、总结和附录; 3)报告正文包括以下部分: ① 问题描述:题目要解决的问题是什么; ② 分析、设计、实现:解决问题的基本方法说明,包括主要算法思想,算法的流程图,程序中主要函数或过程的功能说明; ④ 运行结果分析:分析程序的运行结果是否正确以及出现的问题; ⑤ 总结:遇到的主要问题是如何解决的、对设计和编码的回顾讨论和分析、进一步改进设想、经验和体会等; ⑥ 附录,包括源程序清单和运行结果。 学生签名: 2009 年6 月25 日 课程设计(论文)评审意见 (1)编译器思想的正确性(20分):优( )、良( )、中( )、一般( )、差( ); (2)程序实现的正确性(20分):优( )、良( )、中( )、一般( )、差( ); (3)程序功能的完善程度(20分):优( )、良( )、中( )、一般( )、差( ); (4)学生的态度(20分):优( )、良( )、中( )、一般( )、差( ); (5)课程设计报告(20分):优( )、良( )、中( )、一般( )、差( ); (6)格式规范性、设计态度及考勤是否降等级:是( )、否( ) 评阅人:     职称: 教授 2010 年 6 月 28 日 目 录 课设题目……………………………………………………4 概要设计……………………………………………………5 详细设计……………………………………………………7 运行结果…………………………………………………… 总结………………………………………………………… 附录………………………………………………………… 课设题目 1、问题描述 设计一个给定文法和对应FIRSTVT和LASTVT集,能依据依据文法和FIRSTVT和LASTVT生成算符优先分析表。(算法参见教材) 2、基本要求 动态模拟算法的基本功能是: (1)输入一个给定文法,及FIRSTVT和LASTVT集; (2)输出算符优先分析表生成算法; (3)输出算法优先分析表构造过程的过程; 3、测试数据 输入文法: E-TE’ E’-+TE’|ε T-FT’ T’-*FT’|ε F-(E)|i 二、概要设计 用结构体数组存储多行正规式,用LIST控件显示算法,用CDC类依据进行算法进行作图。并实现算法与生成过程的关联。 根据已知优先文法构造相应优先关系矩阵,并将文法的产生式保存,设置符号栈S,算法步骤如下: 1、将输入符号串a1a2a3...an#依次逐个存入符号栈S中,直到遇到栈顶符号ai的优先性下一个待输入符号aj时为止。 2、栈顶当前符号ai为句柄尾,由此向左在栈中找句柄的头符号ak,即找到ak-1ak为止。 3、由句柄ak...ai在文法的产生式中查找右部为ak...ai的产生式,若找到则用相应左部代替句柄,若找不到则为出错,这时可断定输入串不是该文法的句子。 重复这三步,直到归约完输入符号串,栈中只剩文法的开始符号为止。 求出该文法的优先关系表,在程序中用2维数组表示,-1表示小于或者等于,大于为1,其它为0表示错误。 在输入一串字符串以后进行按照文法一步一步的进行规约,我所进行的是直接规约到文法的符号而不是规约到N。 数据结构使用的是链表,用一个STRUCT来表示一个元素,其中包含符号和下一个符号的指针。 计算优先符关系, 1) ‘=‘关系 直接看产生式的右部,若出现了 A →…ab…或A →…aBb,则a=b

您可能关注的文档

文档评论(0)

ze122230743 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档