编译原理课程设计doc

编译原理课程设计doc

ID:306068

大小:184.50 KB

页数:14页

时间:2017-07-21

编译原理课程设计doc_第1页
编译原理课程设计doc_第2页
编译原理课程设计doc_第3页
编译原理课程设计doc_第4页
编译原理课程设计doc_第5页
资源描述:

《编译原理课程设计doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、编译原理课程设计目录1.1课程设计的基本要求和方法3一、目的3二、课程设计步骤3三、考核评估41.2编译原理设计题目——中间代码生成器和自动生成器4一、中间代码生成器4二、自动生成工具FLEX和YACC51.3编译原理课程设计题目—面向对象的编译器设计6三、面向对象的词法编译器设计6四、面向对象的中间代码编译器设计7五、面向对象的目标代码编译器设计81.4编译原理设计题目—算法过程模拟10六、限自动机的生成及化简过程模拟10七、First集和Follow集生成算法模拟10八、LL(1)分析过程模拟11九、Fir

2、stVT集和LastVT集生成算法模拟12十、算符优先分析表生成模拟12十一、算符优先分析过程模拟13十二、LR分析过程模拟131.1课程设计的基本要求和方法一、目的进一步培养学生编译器设计的思想,加深对编译原理和应用程序的理解,针对编译过程的重点和难点内容进行编程,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。为了使学生从课程设计中尽可能取得比较大的收获,对课程设计题目分成3类,第一类为自动编译器设计题目(共2个),第二类为面向对象的编译器模拟设计(共3个),第三类为编译原理算法模拟设计题目(

3、共7个)。根据老师的安排,学生从这3种类型的题目中选择完成部分题目。二、课程设计步骤1、问题理解和分析充分地分析和理解问题本身,弄清要求做什么(Whattodo?)。2、确定解决问题的方法(设计)主要是找到解决问题的主要思路,是怎么做(Howtodo?)。在此阶段可考虑系统的功能和模块划分等。3、详细设计和编码确定算法的主要流程,再进行编程(Coding)。在此阶段应提醒学生程序可先在纸上写,尽量想清楚了再动手上机,在编程过程中注意程序结构的清晰性,避免出现很多明显的程序逻辑错误和语法错误,提高后面程序调试效率

4、。4、程序调试和运行使学生掌握程序调试和排错(Debug)的基本方法,增加编程的感觉和解决问题的成就感。5、完成课程设计报告(采用重庆工学院课程设计报告,需学生自己购买)1)问题描述题目要解决的问题是什么2)分析、设计、实现解决问题的基本方法说明,包括主要算法思想,算法的流程图。程序中主要函数或过程的功能说明。3)运行结果分析。4)总结遇到的主要问题是如何解决的、对设计和编码的回顾讨论和分析、进一步改进设想、经验和体会等。5)附录源程序清单和结果。三、考核评估通过程序实现、总结报告和学习态度综合考评,并结合学生

5、的动手能力,独立分析解决问题的能力和创新精神。成绩分优、良、中、及格和不及格五等。考核标准包括:(1)编译器思想的正确性,包括是否采用了合适的数据存储结构等。(20%)(2)程序实现的正确性,包括程序整体结构是否合理、编程风格是否规范等。(20%)(3)程序功能的完善程度,包括功能的基本实现、基本完善、完全实现(20%)(4)学生的工作态度、独立工作能力。(20%)(5)课程设计报告。(20%)1.2编译原理设计题目——中间代码生成器和自动生成器一、中间代码生成器【问题描述】设计一个中间代码编译器。【基本要求】

6、交互式面向对象的中间代码编译器基本功能是:(1)输入源程序,输入一个PASCAL源程序;(2)输出中间代码,输出形式为:(序号,对应源程序行号,对应源程序列号,操作符,操作数1,操作数2,结果变量);(3)输出出错信息,输出形式为:(出错行号,出错列号,出错信息);(4)输出符号表,输出形式为:(单词种别码,单词符号,单词类型,值,单词相对地址);【测试数据】(1)输入源程序:{thisisasampleprogramwritinginsimplelanguage}programexample1;{usedfo

7、rillustratingcompilingprocess}vara,b,c:integer;x:char;beginif(a+c*3>b)and(b>3)thenc:=3;x:=2+(3*a)-b*c*8;if(2+3>a)and(b>3)and(a>c)thenc:=3;forx:=1+2to3dob:=100;whilea>bdoc:=5;forx:=1+dto3dob:=15;whilet>bdoc:=5;repeata:=10;untila>b;end.(2)输入源程序:{thisisasamplep

8、rogramwritinginsimplelanguage}programexample1;{usedforillustratingcompilingprocess}vara,b,c:integer;x:char;beginif(a+c*3>b)and(b>3)thenc:=3;x:=2+(3*a)-b*c*8;if(2+3>a)and(b>3)and(a>c)thenc:=3;for

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。