编译原理课程设计简介_编译原理课程设计要求
编译原理课程设计简介由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“编译原理课程设计要求”。
编译原理实践课程
编译原理课程是计算机专业必修的一门重要的专业基础课程,也是计算机系统软件中非常重要的一个分支,经过多年建设取得了丰硕的教学成果:2003年被评为“吉林大学百门精品课程”之一,2004年被评为吉林省精品课程,2006年被评为教育部—微软精品课程。编译原理实践课程建设作为新世纪教学改革重点项目和编译原理精品课程建设的一个重要组成部分,在教材建设、教学内容和教学方法的改革等方面也取得了较突出的成绩,并发表了多篇学术论文。
一、实验课程目的编译原理课程是计算机科学与技术专业学生的专业骨干课之一。通过学习这门课程,使学生掌握编译程序的基本原理、方法和实现技术,使学生更好的理解程序语言的内部机制,培养学生初步掌握设计大型系统软件的方法、技术以及设计大型软件的能力。
编译原理实践性教学的设计思想是使学生透彻的理解编译程序的原理和思想,系统全面的掌握编译技术,使学生通过课堂学习,理解编译原理的同时,注重学生实践能力的培养,进一步巩固对知识的理解,通过实际的锻炼,掌握编译技术,进而能够独立的进行编译器的设计。
二、实验内容及要求
编译程序不同于一般的应用程序,是一个十分庞大和复杂的系统软件。一般的应用程序是以数据作为操作对象,而编译程序则是以程序作为操作对象,是一个元级处理程序,它所包含的算法和思想比较特殊,理论性较强,抽象度也较高,因而编译原理课程一直以来都是计算机专业学生比较难于理解和掌握的一门课程。为此我们开设编译原理实践课程。编译原理实践课程的主要实践题目有:
实验一: 词法分析程序开发
实验要求: 1.掌握词法分析程序自动生成工具LEX的使用。
2.掌握各类单词的形式描述。
3.学会用数据中心法实现有限自动机。4.学会用直接转向法实现有限自动机。5.独立完成SNL语言的词法分析器。
实验二: 递归下降语法分析
实验要求: 1.理解递归下降语法分析方法的主要原理。
2.理解递归下降分析法对文法的要求。
3.熟练掌握Predict集合的求法。
4.熟练掌握文法变换算法(消除左递归和消除公共前缀)。实验三: LL(1)语法分析
实验要求: 1.理解LL(1)分析法的主要原理。
2.理解LL(1)分析法对文法的要求。
3.熟练掌握Predict集合的求法。
4.通过编程熟练掌握LL(1)分析法的工作过程。实验四: 符号表管理
实验要求: 1.了解符号表在编译过程中的重要作用。
2.掌握符号表应包含的符号的属性信息。3.了解符号表的组织原则。4.掌握符号表的操作。
5.掌握符号表的可见性问题。
实验五: 语义检查
实验要求: 1.了解语义检查是语义分析的一个重要内容。
2.掌握语义检查的一般内容。
3.学会在语法分析的同时进行语义检查。4.学会将语义分析作为一遍独立的扫描。
实验六: 中间代码生成实验要求: 1.了解中间代码生成是为优化和移植而进行的。
2.了解几种常见中间代码表示形式掌握符号表应包含的符号的属性信息。
3.会用简单的程序实现中缀式到后缀式的转换。4.会用栈实现复杂表达式的求值。
5.掌握常见程序结构的中间代码结构。
6.掌握由语法树到四元式中间代码的转换方法。
实验七: 中间代码优化
实验要求: 1.能够对中间代码正确划分基本块。
2.理解常量表达式局部优化算法。
3.理解公共表达式局部优化算法。
4.理解循环不变式外提优化算法。实验八: 目标程序生成实验要求: 1.熟练掌握虚拟机的指令系统。
2.理解并掌握指令选择的方法。
3.理解多寄存器分配的原则和方法。
4.熟练掌握基本语句从四元式中间代码形式到目标代码的翻译原理和方法。
5.独立完成目标代码生成程序。
三、实验教学过程及教学手段
教学过程:
经过近三年的研究、探索与实践,我们在编译原理实践课程的建设方面取得了一定成效。在吉林大学计算机学院首次开设了编译原理实践课程,该课程以学生实际上机实习为主,教师指导为辅,强调启发式教学,注重学生自学能力的培养。学生在实践课程中,通过实际动手编程,将抽象的编译理论知识具体化和形象化,加深了对基本概念和方法的理解和运用,从而全面系统地掌握了编译器的构造过程。
该课程采用教研室自编实践教材《编译程序设计与实现》(高等教育出版社)作为辅导教材,通过对教材中提供的编译实例的透彻解析,加深了学生对编译程序的直观认识,提高了学生对源程序的分析和设计能力。同时,对学生学习、理解和掌握编译原理理论课程也有很大的促进作用。在课程中,学生通过亲自动手实践,把原理性的抽象理论知识具体化和形象化,消化了课堂上、书本中难于理解的概念和方法,全面系统的掌握了编译器的构造过程,激发了学生的学习兴趣,培养了学生进行更深入学习的主动性。在教学方法上,结合多媒体课件,强调启发式教学,培养学生的创新能力和动手实践能力。实践证明,这些教学方式的尝试在实际教学中取得了良好的教学效果。
教学环境:
拥有良好的实践教学环境,已建成3个大型网络化、多媒体微机实验室,共有800台奔IV微机,32台服务器,实验室面积为2040平方米,完全能够满足教学实践要求,通过开放式的实践教学,收到了良好的教学效果。除实践课程中规定的实验之外,还设计了一些难度较大的选作实验题目,激发学生的能动性,提高学生分析问题、解决问题的能力。教学手段:
1.多媒体辅助教学软件-PCMCAI(Principle of Compile Multimedia CAI)在教学过程中,我们发现由于编译原理理论性强,抽象度高,学生不易于理解。针对这一情况,我们研制了编译原理多媒体辅助教学软件-PCMCAI(Principle of Compile Multimedia CAI),该软件以多媒体动画的形式生动形象地描述了编译器的各个阶段的工作过程。借助现代化的教学手段和工具,将抽象的知识具体化,便于学生理解复杂的原理,极大地调动了学生的学习积极性,学习效果有了明显的提高;
2.编译实例库
我们完成了编译实例库的构建,建立实例库的目的是使学生通过编译实例库,可以了解和掌握不同类型语言的编译原理和构造技术,培养学生的主动参与、自主思考和创新能力,扩大学生的知识面。通过实践课程,我们总结和综合了学生中优秀的设计实例,同时,广泛的收集当前国内外最新的素材资料,对编译实例库不断地进行完善。目前,实例库已经初具规模并投入使用,为学生提供了广泛的实践素材和范例,在教学过程中作为一种辅助教学手段,效果良好。
3.网络教学平台:http://softlab.jlu.edu.cn 针对目前学生人数增多,教学资源不足,学生质量参差不齐,教学质量和效率得不到保证的情况,我们充分利用Internet,建立和实施网络课程体系,利用Internet在信息制造、贮存和递送方面的优势,克服资源不足的缺点,同时也为学生提供了完全个性化的学习环境,发挥网络教学优势。目前我们已经开始了这方面的建设,完成了编译原理实例库、课件、习题库等方面的建设,构建了网络课程的框架体系,目前正着手网络课程的进一步完善工作。
四、教材及课件
教材建设:
1.校内教材:《一个教学语言TINY的编译程序教学实例分析教材》(2001年6月)。2.校内教材:《编译程序构造原理与实例分析》(2003年2月)。3.编译原理实践教材:《编译程序的设计与实现》(高等教育出版社,2004年7月)。
教学软件:
1.多媒体辅助教学软件-PCMCAI(Principle of Compile Multimedia CAI)。2.SNL(Small Nested Language)语言实例设计及其编译器构造。3.编译原理实例库(C语言版本)。4.编译原理实例库(Java语言版本)。
五、相关成果
发表论文:
1.《编译原理实践课程设计的探索》,刘磊等,吉林大学新世纪教学改革项目研究成果----创新、改革与实践 第一集 吉林大学出版社。2.《用递归下降方法实现自底向上的分析》,刘磊等,吉林大学学报(信息科学版),2004(3)。
3.《编译原理多媒体辅助教学软件的设计与实现》,刘磊等,吉林大学自然科学学报,2002(2)。
4.《测试语言ATLAS的实现技术》,刘磊等,仪器仪表学报,2004(4)。5.《ATLAS_MPS的设计与实现》,刘磊等,吉林大学学报,2004(4)。6.《编译原理实践课程教学方法研究》,张晶等,全国首届计算机程序设计类课程教学研讨会,2005(9)。7.《“编译原理”课程建设研究》,刘磊等,计算机教育,2006(6)。获得奖励:
1.2004年,《编译原理实践课程建设》,吉林大学教学成果二等奖。2.2006年,《编译程序的设计与实现》一书获吉林大学本科优秀教材。3.2002年,编译原理CAI课件-PCMCAI获被吉林省教育厅评为二等奖,并在第六届全国多媒体教育软件大奖赛上获得优秀奖。
4.《编译原理》课程先后被评为吉林大学精品课程、吉林省精品课程及教育部-微软精品课程。
总之,经过多年的研究、探索与实践,我们在编译原理实践课程的建设方面取得了一定成效。在吉林大学计算机学院首次开设了编译原理实践课程,该课程以学生实际上机实习为主,教师指导为辅,强调启发式教学,注重学生自学能力的培养。学生在实践课程中,通过实际动手编程,将抽象的编译理论知识具体化和形象化,加深了对基本概念和方法的理解和运用,从而全面系统地掌握了编译器的构造过程。该课程采用我们自编实践教材《编译程序设计与实现》作为辅导教材,通过对教材中提供的编译实例的透彻解析,加深了学生对编译程序的直观认识,提高了学生对源程序的分析和设计能力。同时,对学生学习、理解和掌握编译原理理论课程也有很大的促进作用。在教学方法上,结合多媒体课件,强调启发式教学,培养学生的创新能力和动手实践能力。实践证明,这些教学方式的尝试在实际教学中取得了良好的教学效果。
附件(获得奖励证书)