编译实验指导.docVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理课程设计 目录 1.1课程设计的基本要求和方法 3 一、目的 3 二、课程设计步骤 3 三、考核评估 4 1.2编译原理设计题目——中间代码生成器和自动生成器 4 一、 中间代码生成器 4 二、 自动生成工具FLEX 和YACC 5 1.3编译原理课程设计题目—面向对象的编译器设计 6 三、 面向对象的词法编译器设计 6 四、 面向对象的中间代码编译器设计 7 五、 面向对象的目标代码编译器设计 8 1.4 编译原理设计题目—算法过程模拟 10 六、 限自动机的生成及化简过程模拟 10 七、 First集和Follow集生成算法模拟 10 八、 LL(1)分析过程模拟 11 九、 FirstVT集和LastVT集生成算法模拟 12 十、 算符优先分析表生成模拟 12 十一、 算符优先分析过程模拟 13 十二、 LR分析过程模拟 13 1.1课程设计的基本要求和方法 一、目的 进一步培养学生编译器设计的思想,加深对编译原理和应用程序的理解,针对编译过程的重点和难点内容进行编程,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。 为了使学生从课程设计中尽可能取得比较大的收获,对课程设计题目分成3类,第一类为自动编译器设计题目(共2个),第二类为面向对象的编译器模拟设计(共3个),第三类为编译原理算法模拟设计题目(共7个)。根据老师的安排,学生从这3种类型的题目中选择完成部分题目。 二、课程设计步骤 1、问题理解和分析 充分地分析和理解问题本身,弄清要求做什么(What to do?)。 2、确定解决问题的方法(设计) 主要是找到解决问题的主要思路,是怎么做(How to do?)。在此阶段可考虑系统的功能和模块划分等。 3、详细设计和编码 确定算法的主要流程,再进行编程(Coding)。在此阶段应提醒学生程序可先在纸上写,尽量想清楚了再动手上机,在编程过程中注意程序结构的清晰性,避免出现很多明显的程序逻辑错误和语法错误,提高后面程序调试效率。 4、程序调试和运行 使学生掌握程序调试和排错(Debug)的基本方法,增加编程的感觉和解决问题的成就感。 5、完成课程设计报告(采用重庆工学院课程设计报告,需学生自己购买) 1)问题描述 题目要解决的问题是什么 2)分析、设计、实现 解决问题的基本方法说明,包括主要算法思想,算法的流程图。 程序中主要函数或过程的功能说明。 运行结果分析。 总结 遇到的主要问题是如何解决的、对设计和编码的回顾讨论和分析、进一步改进设想、经验和体会等。 附录 源程序清单和结果。 三、考核评估 通过程序实现、总结报告和学习态度综合考评,并结合学生的动手能力,独立分析解决问题的能力和创新精神。成绩分优、良、中、及格和不及格五等。 考核标准包括: (1)编译器思想的正确性,包括是否采用了合适的数据存储结构等。 (20%) (2)程序实现的正确性,包括程序整体结构是否合理、编程风格是否规范等。(20%) (3)程序功能的完善程度,包括功能的基本实现、基本完善、完全实现 (20%) (4)学生的工作态度、独立工作能力。 (20%) (5)课程设计报告。 (20%) 1.2编译原理设计题目——中间代码生成器和自动生成器 中间代码生成器 【问题描述】 设计一个中间代码编译器。 【基本要求】 交互式面向对象的中间代码编译器基本功能是: 输入源程序,输入一个PASCAL源程序; 输出中间代码,输出形式为:(序号,对应源程序行号,对应源程序列号,操作符,操作数1,操作数2,结果变量); 输出出错信息,输出形式为:(出错行号,出错列号,出错信息); 输出符号表,输出形式为:(单词种别码,单词符号,单词类型,值,单词相对地址); 【测试数据】 (1)输入源程序: {this is a sample program writing in simple language} program example1; {used for illustrating compiling process} var a,b,c:integer; x:char; begin if (a+c*3 b) and (b3) then c:=3; x:=2+(3*a)-b*c*8; if (2+3 a) and (b3) and (ac) then c:=3; for x:= 1+2 to 3 do b:=100; while ab do c:=5; for x:= 1+d to 3 do b:=15; while tb do

文档评论(0)

sxty + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档