《编译原理》课程设计要求

2024-08-08

《编译原理》课程设计要求(共12篇)(共12篇)

1.《编译原理》课程设计要求 篇一

编译原理实践课程

编译原理课程是计算机专业必修的一门重要的专业基础课程,也是计算机系统软件中非常重要的一个分支,经过多年建设取得了丰硕的教学成果: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.《编译原理》课程先后被评为吉林大学精品课程、吉林省精品课程及教育部-微软精品课程。

总之,经过多年的研究、探索与实践,我们在编译原理实践课程的建设方面取得了一定成效。在吉林大学计算机学院首次开设了编译原理实践课程,该课程以学生实际上机实习为主,教师指导为辅,强调启发式教学,注重学生自学能力的培养。学生在实践课程中,通过实际动手编程,将抽象的编译理论知识具体化和形象化,加深了对基本概念和方法的理解和运用,从而全面系统地掌握了编译器的构造过程。该课程采用我们自编实践教材《编译程序设计与实现》作为辅导教材,通过对教材中提供的编译实例的透彻解析,加深了学生对编译程序的直观认识,提高了学生对源程序的分析和设计能力。同时,对学生学习、理解和掌握编译原理理论课程也有很大的促进作用。在教学方法上,结合多媒体课件,强调启发式教学,培养学生的创新能力和动手实践能力。实践证明,这些教学方式的尝试在实际教学中取得了良好的教学效果。

附件(获得奖励证书)

2.《编译原理》课程设计要求 篇二

编译原理是高等院校计算机专业继“数据结构”、“计算机原理”等专业基础课之后的又一门重要的专业基础课, 以形式语言与自动机理论为基础, 讨论编译程序构造的基本原理[1]、基本设计方法和主要实现技术。通过本课程的学习, 能深化学生对计算机信息处理本质与计算机工作过程的认识, 加深对程序设计语言的理解, 为后继专业课程的学习奠定坚实的理论基础, 并将编译程序构造的基本原理和技术应用于一般软件的设计。因此, 努力提高这门课的教学效果, 使学生真正掌握这门课的精髓, 并应用到实践中去, 具有非常重要的现实意义。

1 编译原理课程现状与问题

编译原理课程由于理论性强, 具有严密的逻辑性, 应用其他课程的知识较多, 学生在学习过程中感到内容抽象、算法复杂、难于理解, 学习起来有一定的难度, 因此, 编译原理被普遍看做是计算机专业本科教学中最难讲解、最难学习的课程之一, 在教学上不同程度的存在以下几个问题。

1.1 理论知识抽象难懂, 学生有畏惧心理

这门课程主要讨论编译的基本理论和编译器构造的基本方法, 涉及的理论知识抽象、难懂, 如形式语言与自动机理论、语法制导翻译以及各种算法, 又综合运用到前面所学的相关课程的知识, 确实具有相当的难度, 使得学生产生了畏惧心理。此外, 不少学生认为学习这门课将来只能用于编译器的设计上, 而大多同学将来都不太可能去从事编译器的设计工作, 因此普遍认为这门课没有用, 学习热情不高。

1.2 理论课教学方式陈旧单一

目前, 编译原理的理论课大多以老师讲解为主, 很少辅之以其他形象生动的教学手段, 教学内容又大多是抽象的概念和复杂的算法, 老师和学生之间的互动很难形成, 学生觉得枯燥乏味, 慢慢就失去了学习的兴趣, 难以达到良好的教学效果[2]。

1.3 实验内容脱离实际, 不够合理

这门课程的实践环节大多要求实现一个小型语言的编译程序, 而实现一个编译程序不仅要有相关的理论知识, 更需要丰富的实践经验, 熟悉硬件系统和操作系统的功能, 对于大多数同学来说, 编程能力都相对欠缺, 实现编译程序基本是不可能完成的任务。因此, 大多同学在实验时碰到的困难太多, 无从下手, 干脆放弃努力, 也就失去了实验的意义。

2 教学探讨

2.1 帮助学生克服畏惧心理, 培养学习兴趣

根据这门课程抽象难懂的特点, 首先要帮助学生克服畏惧心理, 才能发挥他们的学习主动性。这门课的先行课程如“数据结构”、“离散数学”、“高级程序设计语言”等都是学生已经学习过的课程, 学生实际已经具有相应的能力, 老师需要的是帮助学生分析他们已经掌握的知识, 让学生对自己有足够的了解, 明白以他们已掌握的知识为基础, 有足够的能力学习掌握编译原理这门课程, 在学习之前首先消除畏惧心理。

编译程序涉及的算法、思想和实现技术除了设计编译器以外也可广泛应用于一般软件的设计实现[3], 如文本编辑器、信息检索系统、模式识别器等, 对提高学生程序设计能力和开发大型软件的能力是十分有益的。教师可以鼓励学生尝试将编译程序中的各种算法和技术应用到各个领域, 以培养学习兴趣, 激发学生的创造性思维, 培养学生的创新能力。

2.2 采用案例式教学, 把抽象问题具体化

编译原理中涉及的大量概念和算法都过于抽象, 学生理解起来非常困难, 要想获得良好的教学效果, 必须借助实例, 使抽象问题具体化。例如, 词法分析部分主要阐述词法分析器的工作原理和构造方法, 相关概念和算法较多, 可以通过一个具体的程序范例进行教学。通过编写一个读单词过程, 从输入的源程序中, 识别出各个具有独立意义的单词, 即基本保留字、标识符、常数、运算符、分隔符五大类, 并依次输出各个单词的内部编码及单词符号自身值。在课堂上通过程序的运行来展示词法分析器的工作过程。通过实例教学, 学生既加深了对理论知识的理解, 也提高了学习的积极性。

2.3 注重启发式教学, 培养学生独立思维能力

传统的教学注重教师的讲解, 学生被动的接受知识, 不利于学生思维能力的培养[4]。我们在教学中, 特别注重启发式教学, 引导学生去思考探讨。启发式教学需要教师有目的的设计问题, 有意义的提出问题, 通过问题把知识点引导出来, 学生通过思考回答问题, 寻找解决问题的途径和方法, 加深对知识点的理解。例如, LR分析法是语法分析中较难的部分, 其中包含了四种不同的分析表构造方法, 学生不好理解。在讲解时先给出LR (0) 分析表的构造方法, 引导学生发现其中的不足并进行改进, 从而引出SLR分析法, 再进一步引导学生发现SLR方法的不足, 引出LR (1) 分析法, 同样的方法引出LALR分析法。通过这样的启发式教学, 不仅破解了教学难点, 也引发了学生探究的兴趣。

通过启发式教学, 培养了学生独立思考问题、发现问题、解决问题的习惯和自主能力。学生也在这个过程中通过自己的学习活动获取知识, 发展能力。

2.4 现代化教学手段和板书相结合, 提高学习效果

编译原理课程内容抽象, 知识点多, 要想取得良好的教学效果, 必须借助形象化的教学手段, 构建多媒体环境下的教学环境。利用多媒体设施、电子教案、教学网站等多种途径把知识化静为动, 寓教于乐。为此, 我们精心编制了多媒体课件, 用Flash技术制作了动画, 可以生动形象的演示抽象概念和复杂算法。这样不仅激发了学生的学习兴趣, 也加深了学生对理论知识的理解。但是采用多媒体教学也不能完全抛弃板书, 因为板书灵活, 可以随时补充。所以在教学中应做到多媒体教学和传统的板书教学相结合。

2.5 精心设计课程实验, 加强学生实际应用能力

编译原理是一个理论和实践并重的课程, 但是如何组织实验内容始终是教学中的一个难题[5]。目前普遍的做法是实现一个小型语言的编译程序, 而这并非一件容易的事情, 对于编程能力都还欠缺的学生来说, 实现完整的编译程序基本是不可能完成的任务。因此, 大多同学在实验时碰到的困难太多, 无从下手。对此, 我们的做法是提供给学生程序源代码但是空出关键模块, 学生只需完成关键模块的编写, 大大降低了实验的难度, 也使学生可以集中精力解决关键问题。在实践环节中, 根据学生的能力、性别, 采用互补的搭配方式把学生分为若干小组, 每组设小组长负责实验的学习讨论并对各成员进行分工。每一次实验结束后, 各个小组以小组长为代表汇报自己的作业, 由其他小组自由提问, 实现各个小组之间的交流, 分享各组的实践成果, 互相借鉴, 很好的激发了大家的学习兴趣。

3 结语

编译原理课程作为计算机专业的一门重要专业基础课, 对于提高学生的计算机专业素养具有重要的作用。本文分析了目前教学中存在的问题, 并从教学实践出发, 对如何调动学生积极性从而真正提高教学效果总结出了一些有效的教学方法, 在实际教学中也取得了良好的效果。由于课程的复杂性和抽象性, 还需要不断地探索更合理的教学方法, 提高教学质量。

参考文献

[1]朱文华, 王荣波.基于建构主义的编译原理实践教学研究[J].杭州电子科技大学学报:社科版, 2008 (4) :67—70.

[2]舒忠梅, 李文军, 周晓聪.编译原理教学改革实践初探[J].中山大学学报:自然科学版, 2007 (S2) :101-104.

[3]莫雷.教育心理学[M].广州:广东高等教育出版社, 2003.

[4]何炎祥.现代教学理论指导下的“编译原理”教学综合改革[J].计算机教育, 2005 (03) .

3.《编译原理》课程设计要求 篇三

一、目的与要求

“编译原理”是计算机科学技术专业与软件工程专业的必修课程,是一门理论性和实践性都很强的课程。为了配合《编译原理》课程的教学更全面的理解理论知识,提高实践能力,计算机科学与技术专业以及软件工程专业开设了实践类必修课程-“编译原理课程设计”。通过设计一个小型编译器,更深刻地领会编译程序的基本概念、基本原理和实现方法,培养学生的实际工作能力,加深对课堂教学内容的理解,从而具有初步开发系统软件和应用软件的实际能力。将读书环节融入教学内容的设计中,做好理论教学、实践教学、读书环节三者有机结合,可使学生进一步了解课程理论知识,拓宽视野,加深对本专业相关课程的理解。在读书工程环节,学生可以通过阅读相关的参考书目,对课程设计的五个主要部分:构造识别符号串的自动机、词法分析程序的构造、语法分析程序的构造、中间语言的生成程序、编译程序的代码生成程序中的任意一个题目进行深入的分析探讨和总结,并提交相应的读书工程报告。

二、考核方式

通过提交读书报告进行考核,该部分成绩要占课程总成绩的15%。字数不少于5000字。

三、参考书目

书目名称:编译原理(第2版)作 者:张素琴 吕映芝 出 版 社:清华大学出版社 出版时间:2005年02月

内容提要:本书介绍编译系统的一般构造原理、基本实现技术和一些自动构造工具。主要由语言基础知识、词法分析、语法分析、中间代码生成、代码优化、目标代码生成、符号表的构造和运行时存储空间的组织等部分组成。

书中在介绍编译程序构造基本原理的同时引入“PL/0语言的编译程序”结构及文本,还引入了LEX、YACC使用方法与实例。

本书是高等院校计算机科学与技术专业的本科生教材,也可作为教师、研究生软件工程技术人员的参考书。书目名称:编译原理(第2版)原书名: Compilers:Principles,Techniques,and Tools 原出版社: Pearson Education 作者: [美]Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman 译者: 李建中 姜守旭 出版社:机械工业出版社 出版日期:2003 年9月

内容提要:本书深入讨论了编译器设计的重要主题,包括词法分析、语法分析、语法制导分析、类型检查、运行环境、中间代码生成、代码生成、代码优化等,并在最后两章中讨论了实现编译器的一些编程问题和几个编译器实例,每章都提供了大量的练习和参考文献。本书从介绍编译的原理性概念开始,然后通过构建一个简单的一遍编译器来逐一解释这些概念。本书是编译原理课程的经典教材,作者曾多次使用本书的内容在贝尔实验室、哥伦比亚大学、普林斯顿大学和斯坦福大学向本科生和研究生讲授初等及高等编译课程。本书作者alfred v.aho、ravi sethi和jeffrey d.ullman是世界著名的计算机 科学家,他们在计算机科学理论、数据库等很多领域都做出了杰出贡献。本书 是编译领域无可替代的经典著作,被广大计算机专业人士誉为“龙书”。本书一 直被世界各地的著名高等院校和科研机构(如贝尔实验室、哥伦比亚大学、普 林斯顿大学和斯坦福大学等)广泛用作本科生和研究生编译原理与技术课程的 教材,本书对我国计算机教育界也具有重大影响。书中深入讨论了编译器设计的重要主题,包括词法分析、语法分析、语法制 导分析、类型检查、运行环境、中间代码生成、代码生成、代码优化等,并在 最后两章中讨论了实现编译器的一些编程问题和几个编译器实例,而且每章都 提供了大量的练习和参考文献。书目名称:编译原理及实践

作者:(美)Kenneth C.Louden著,冯博琴,冯岚等译 出版社:机械工业出版社 版次:2000年3月第1版

内容提要:本书结合对现代编译器设计理论的详细研究,完整描述了一个可运行的小规模语言编译器(包括源代码)。本书反映了作者的这样一些观点:不掌握理论就不会理解实际的编译器设计;而对大学生来说,看不到理论在实际中的应用就不会真正地理解理论。把本书讨论的概念统一起来,就是一个完整的可运行的编译器,它使用每一章所讨论的技术进行开发,用C语言写成。每章最后有大量的练习,使学生的注意力集中在编程问题上。书目名称:编译程序构造原理和实现技术 作者:金成植

出版社:高等教育出版社

出版时间:2000年7月第1版 2004年4月第6次印刷

内容提要:本书经教育部高等学校计算机教学指导委员会推荐,列入“九五”国家级重点教材建设项目和“面向21世纪课程教材”。

本书是作者在其编著的《编译原理与实现》基础上编写的,结合了多年的教学经验,是一本比较成功的教材。它主要以Pascal类语言为模型,介绍过程式语言的编译程序构造原理和实现技术。本书共分十章,主要包括词法分析和语法分析的理论与技术,语义分析原理与技术,运行时的存储分配原则,动作文法和属性文法技术,中间代码生成、中间代码优化和目标代码生成的原理与技术等。本书的特点是概念清晰,层次分明,循序渐进,整体性强,便于教学,并反映当前的实用技术。

书目名称:编译原理(第2版)作者:(美)阿霍等著,赵建华等译 出版社:机械工业出版社 出版时间:2009-1-1 内容提要:本书是编译领域无可替代的经典著作,被广大计算机专业人士誉为“龙书”。本书上一版自1986年出版以来,被世界各地的著名高等院校和研究机构(包括美国哥伦比亚大学、斯坦福大学、哈佛大学、普林斯顿大学、贝尔实验室)作为本科生和研究生的编译原理课程的教材。该书对我国高等计算机教育领域也产生了重大影响。第2版对每一章都进行了全面的修订,以反映自上一版出版20多年来软件工程。程序设计语言和计算机体系结构方面的发展对编译技术的影响。本书全面介绍了编译器的设计,深入地探讨了编译器设计方面的重要主题,包括词法分析、语法分析、语法制导定义和语法制导翻译、运行时刻环境、目标代码生成、代码优化技术、并行性检测以及过程间分析技术,并强调编译技术在软件设计和开发中的广泛应用。每章中都包含大量的习题和丰富的参考文献。并在相关章节中给出大量的实例。书目名称:编译原理课程设计 作 者: 王雷、刘志成、周晶 出 版 社: 机械工业出版社 出版时间: 2005-3-1 内容提要:编译理论和技术作为计算机科学研究和工程应用的基础,受到了广泛的重视。编译原理也是大学计算机专业的必修课程。本书使用优秀的开源java编译器gjc作为编译教学的基础平台,通过分析一个真正实用的现代编译系统,把编译理论应用到实际的工程实践中。全书不仅包括对编译器源代码的分析、对实例的讲解,还在最后给出3个具体的课程设计实验,介绍如何用书本上的编译理论实现一个真正的编译器。使用优秀的开源编译器作为教学平台,系统规模不大,且源程序有着很好的注释。通过详尽的源代码剖析和实例讲解,循序渐进地启发学生完成课程设计。结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实践需要。是一本注重应用的实验教程,因此可以和讲授编译理论的教材配合使用。编译原理是大学计算机专业的必修课程。本书使用优秀的开源java编译器gjc作为编译教学的基础平台,通过分析一个真正实用的现代编译系统,把编译理论应用到实际的工程实践中。全书不仅包括对编译器源代码的分析、对实例的讲解,还在最后给出3个具体的课程设计实验,介绍如何用书本上的编译理论实现一个真正的编译器。本书适合作为大专院校编译原理课程设计的指导用书,相关的从业人员和研究人员也可以从中获得有益的参考。

书目名称:《现代编译程序实现—Java语言》(第二版,英文影印版)原书名: Modern Compiler Implementation in Java,Second Edition 原出版社: Cambridge University Press 作 者:(美)A A.W.Appel等 出 版 社:电子工业出版社 出版时间:2004 年9月 内容提要:,本书是一本编译技术的教程,其特点是注重实现。从学习编译器的结构来掌握理论,并通过编程技术将编译理论融合于实践中。本书介绍了编译器的各个方面,包括词法分析,语法分析,抽象语法,语义行为,中间表示,通过树匹配选择指令,数据流分析,用色图法实现寄存器分配,运行时间系统。本书还讲述了通用的编译器实现技术,包括代码生成、寄存器分配以及大多数书籍未涉及的函数式编程语言和面向对象语言,并用实际的Java类详细说明了编译器各模块间的接口。本书的第一部分——编译器基础,适合作为第一学期编译器设计的入门课程。本书的第二部分ˉ一高级课题,包括面向对象语言和函数式语言的编译技术,无用信息收集,循环优化,静态单赋值表,指令调度以及高速缓冲存储器的分级优化,则适合作为第二学期的课程。本书第二版新增了关于Java和面向对象编程等概念,例如访问模型。本书的一大特色是利用Java子集重新实现了一个编译器项目。该项目包括前端和后端阶段,因此学生可以在一个学期内实现一个完整的编译器。

本书可作为高等院校编译技术课程的教材、教师参考书以及编译技术研究人员的参考资料。

书目名称:《程序设计语言编译原理》(第3版)作 者: 陈火旺 刘春林 谭庆平赵克佳 刘越 出 版 社:国防工业出版社 出版时间:2000年02月

内容提要:本书是在陈火旺、钱家骅、孙永强三位教授编写的《程序设计语言编译原理》的基础上,结合编译技术的最新研究成果和作者多年的教学经验编写而成的。

本书比较全面、系统地介绍了编译程序构造的一般原理和基本实现方法,内容包括词法分析、语法分析、属性文法与语法制导翻译、语义分析与中间代码产生、符号表与运行时存储空间组织、优化与目标代码生成、并行编译技术。与原教材相比,本书将编译技术的最新发展,例如属性文法、面向对象语言的编译技术、并行编译技术、编译程序自动构造工具等内容系统地融合到教材中;在语言背景方面,以C,Pascal替代原教材中的FORTRAN和Algol;并在一些重要的章节中增加了必要的例题,以帮助读者理解和自学。本书可作为高等(理、工)院校计算机科学(或工程)专业的教材,或作为教师、研究生、高年级学生或软件工程技术人员的参考书。书目名称:编译原理 技术与工具(第二版)(英文版)原书名: Compilers: Principles, Techniques, and Tools(2nd Edition)原出版社: Addison Wesley 作 者:(美)Alfred V.Aho Monica S.Lam Ravi Sethi Jeffrey D.Ullman 出 版 社:人民邮电出版社 出版时间:2008 年2月

内容提要:作为编译器设计的教程,本书重点主要放在解决设计语言翻泽器过程中普遍需要面对的一些问题上,而并不考虑源语言或者目标机器。本书共 12章。第一章是一些关于学习动机的资料,同时也给出了一些关于计算机体系结构和程序设计语言原理的背景知识。第二章开发了一个缩微的编译器,并介绍了很多重要的概念,这些概念将在后面的各个章节中深入介绍。这个编译器本身在附录中给出。第三章讨论了词法分析、正则表达式、有穷状态自动机和词法分析器的生成工具,这些内容是各种正文处理的基础。第四章讨论了主流的语法分析方法,包括自顶向下方法(递归下降法,ll技术)和自底向上方法(lr技术和它的变体)。第五章介绍了语法制导定义和语法制导翻译的基本思想。第六章介绍了如何使用第五章中的理论为一个典型的程序设计语言生成中间代码。第七章讨论了运行时刻环境,主要是运行时刻栈的管理和垃圾收集机制。第八章介绍了关于目标代码生成的内容,主要讨论了基本块的构造,从表达式和基本块生成代码的方法,以及寄存器分配技术。第九章介绍了代码优化技术,包括流图、数据流分析框架以及求解这些框架的迭代算法。第十章讨论了指令级优化。该章的重点是从小段指令代码中抽取并行性,并在那些可以同时做多件事情的单处理器上调度这些指令。第十一章讲的是大规模并行的检测和利用。这章的重点是数值计算代码,这些代码具有对多维数组进行遍历的紧致循环。第十二章介绍的是关于过程间分析技术的内容,讨论了指针分析、别名和数据流分析,这些分析中都考虑了到达代码中某个给定点时的过程调用序列。

本书可作为高校计算机专业本科和研究生编译原理的教科书,也可供从事计算机软件开发的人员参考。

四、读书报告范例

黑龙江大学

“编译原理课程设计”读书报告

学院 年级 专业 学号 姓名 报告日期 成绩

黑龙江大学计算机科学技术学院

黑龙江大学软件学院

一、开发环境简介

二、基本理论阐述、当前理论或实践应用现状

三、小型编译器系统架构

四、小型编译器主要功能模块与实现(1)功能介绍(2)相关理论(3)算法描述(4)程序流程图

(5)测试用例与实验结果

五、读书工程心得总结

六、参考文献

4.编译原理课程-教学计划 篇四

周次课内学时课内安排(讲授内容)建议课外安排备注

12编译原理概述阅读PL/0程序文本

24介绍PL/0编译程序阅读PL/0程序文本

32词法分析程序自动构造阅读PL/0程序文本

(正规式,有穷自动机)

44(2)词法分析程序自动构造练习题

Lex(Flex)介绍,布置PP1实践题一PP1

52文法和语言练习题

64自顶向下语法分析练习题提交PP1LL(1)文法

72自底向上语法分析练习题

LR文法

84LR分析练习题

期中考试

92Yacc介绍,布置PP2实践题一PP2

104习题课

语法分析方法比较提交PP2 112语法制导翻译,布置PP3实践题一PP3

124语法制导翻译

运行时存储组织提交PP3 132运行时存储组织练习题144代码优化, 布置PP4实践题一PP4

152代码生成164实践题目总结答辩

习题课

附1 实践题目(从中选一)

实践题一 Deacf编译程序的设计和实现.实践题二Pl/0编译程序扩充,用Lex和 Yacc实现一个小解释器.实践题三 java实现的Mini-Triangle编译程序.(限少数同学选,在第四周作选题报告)附2 课程评分

1课堂小测验,作业抽查 10%期中考试20%

3实践题一 40% 实践题二20% 实践题三 50%

5.《编译原理》课程设计要求 篇五

A、熟悉混凝土结构体系荷载的传递及确定。

B、熟悉结构的平面布置。

C、掌握单向板(双向板)、次梁、主梁承载力计算、板梁配筋计算。

D、绘制结构平面图、板梁(次梁及主梁)配筋图及抽筋图。

E、写出计算书。

学生交件材料:

混凝土结构课程设计:计算书、2张2号图;

钢结构课程设计:计算书、2张2号图;

建设监理社会调查:不少于5000字的调查报告(2)验收办法

每个课程设计1.5学分,两个课程设计完成后,要结合两个课程设计完成成绩综合评定出课程设计成绩,成绩评定后,由我校责任教师上传实践平台,省校先予通过,待毕业验收时和毕业设计一道验收。希望指导教师提醒学员,要认真完成课程设计,一旦验收不合格,将影响学员毕业。

(二)、生产实习

1、实习目的与要求

生产实习是土木工程专业教学计划中的重要组成部分。它为实现专业培养目标起着重要作用;也是毕业后参加实际工作的一次预演。

生产实习学生是以技术人员助手的身份参加土木工程建造的现场施工和管理工作,在实习前已学完所有基础理论课程,以及《钢筋混凝土结构基本构件》、《地基与基础》、《土木工程施工》和《工程造价》等专业课程;在实习中应深入土木工程施工现场,认真实习,获取直接知识,巩固所学理论,完成实习指导人(现场工程师或技术人员)所布置的各项工作任务,培养和锻炼独立分析问题和解决问题的能力。其主要要求为:

(1)通过实习了解建筑构造、结构体系及特点;了解某些新建筑、新结构、新施工工艺、新材料和现代化管理方法等。丰富和扩大学生的专业知识领域。

(2)通过生产实习,使学生对典型土木工程的单位或分部工程的结构构造、施工技术与施工组织管理等内容进一步加深理解,巩固课堂所学内容。了解拟定典型分部分项工程的施工方案和控制施工进度计划的方法。

(3)通过现场实习了解建筑业企业的组织机构及企业经营管理方式;对施工项目经理部的组成,施工成本的控制,生产要素的管理有所了解。

(4)参加实际生产工作,灵活运用已学的理论知识解决实际问题,培养学生独立分析问题和解决问题的能力。

(5)学习广大工人和现场技术人员的优秀品质,树立刻苦钻研科学技术为祖国现代化多作贡献的思想。学习土木工程施工质量管理的基本方法;对土木工程施工质量的过程控制有所了解。了解现行的国家有关工程质量检验和管理的标准。

2、生产实习的方式

实习需要较多的施工现场,对工程有一定要求,而且要分散进行,不宜集中,各分校应通过各种渠道联系实习工地。

学生可持学校介绍信自行联系实习工地。将工地同意实习回函,寄回学校,经指导教师同意,即可到该工地实习。也可由指导教师统一安排学生实习工地。

3、实习内容

学生实习期间,在工地技术人员的指导下,选择如下岗位:

参加工地的质量监督工作。

参加工地测量放线工作。

参加编制单位施工组织设计。

参加技术资料的整理工作。

参加新工艺、新材料、新结构的技术研究及实验工作。

参加投标报价工作。

参与有关合同管理、索赔工作。建议实习的具体内容:

(1)看懂实习工程对象的建筑、结构施工图 了解工程的性质、规模、生产工艺过程、建筑构造与结构体系、地基与基础特点等,提出个人对设计图纸的见解。

(2)参加单位工程或分部工程的施工组织管理工作(完成下列的1~2项)

①参与拟定施工方案(土方工程和基础工程施工方法、主要承重结构施工方法、屋面工程以及施工技术措施等),并独立完成部分工作。当已有施工方案时,可通过熟悉方案并结合现场实践提出个人见解。

②参与编制工程施工进度计划或施工平面图,当已有此两种资料时,可通过了解编制方法、执行情况和现场管理等提出个人见解。

③完成单项作业设计工作(模板配板设计、土方工程施工设计、整体式钢筋混凝土基础或大型设备基础施工设计、构件预制与安装工程施工设计及装修工程施工设计等)。

④参加或熟悉施工预算的编制。

⑤参加施工项目管理实施规划的拟定。

(3)学习1-2个主要工种工程的施工方法、操作要点、主要机具设备及用途、质量要求以及本人提出的合理化建议及设想等;

(4)了解施工单位的组织管理系统、各部门的职能和相互关系,了解施工项目经理部的组成,了解各级技术人员的职责与业务范围;

(5)了解新技术、新工艺、新材料及现代施工管理方法等的应用,了解施工与管理的新规范;

(6)参与现场组织的图纸会审、技术交流、学术讨论会、工作例会、技术革新、现场的质量检查与安全管理等;

(7)了解在施工项目管理中各方(业主、承包商、监理单位)的职责;(8)了解施工项目管理的内容和方法。

4、生产实习日记、实习报告

(1)生产实习日记

1)生产实习日记是学生积累学习收获的一种重要方式,应根据本大纲的要求,每天认真记录工作情况,心得体会和工作中发现的问题,并提出改进意见。根据每天工作情况,认真做好资料积累工作:如施工组织情况、劳动安排、新材料、新的施工方法、施工进度计划和施工平面图布置等。

2)遇有参观、听课或听专题报告会,及技术交底等应详细记录这部分内容,并写出本人的心得体会,日记内容除文字外,还应有必须的插图或表格,除记录收获外,还应写出对项目管理、政策法规等的认识。

(2)生产实习报告

生产实习结束时,由学生本人撰写实习报告,内容应包括:

1)实习概况:工地地点、承包公司、结构类型、建筑规模、工程概算、工程量及施工方法、施工单位的组织机构。

2)简单的平、立、剖面图。

3)个人的实习内容。

4)个人在实习中协助工地做了哪些创新工作或有哪些新的见解。

5)实习中的体会及对今后实习的建议。

实习结束时学生应按实习大纲的要求,根据实习日记中所积累的资料,进行全面的分析和总结,及时写出实习报告。实习报告能反映出学生对实习内容理解的深度,也能反映出学生分析和归纳问题的能力,实习报告应图文并茂,总字数不宜少于5000字。建议实习报告内容具体要求如下:

1)实习安排、实习工程概况,工程造价、主要工种工程的工程量及施工方法、施工单位的管理机构和组织系统等;

2)将整个实习内容进行归纳总结,包括房屋和构筑物的定位放线和控制标高工作,校核 施工图及放样工作,交工验收或质量检查工作等。简述各工种工程的施工方法及施工方案,单位工程施工组织设计编制及方法。施工场地的平面布置,劳动组织、各项技术措施等。谈谈这次实习对你在思想上和业务上的帮助,以及体会和收获,;

3)以一次参观、工作例会、专题报告、现场教学、施工操作要领、新技术调查或工程简介为对象,全面地、系统地归纳总结,写出通过该项活动的体会和收获;

4)在实习过程中,对工程技术和现场管理提出的建议,采纳情况; 5)对学校安排的实习提出的建议及需要改进的地方;

6)在施工现场自己完成的有关施工技术、施工组织管理、施工预算方面的方案、图纸和计算书等(此项用复印件附在实习报告中);

7)有关新结构、新工艺、新技术和新材料的专题调研报告。

5、对学生的要求

(1)在实习期间学生以基层技术管理人员(工长、队长、工地主任、工程师)助理的身份参加工作。

(2)服从工地指导,尊重工人师傅,虚心学习,主动协助工地作一些力所能及的工作。

(3)发扬吃苦耐劳的精神,克服工作累,条件艰苦的困难。

(4)抓紧实习时间,尽量多学习一些书本上学不到的东西,每天记好实习日记,及时整理、勤于思考,有目的地提高自己分析问题,解决问题的能力。

(5)实习期间一般不准事假,实习期间不得旷课、迟到或早退。

6、实习考核

实习结束时工地的指导教师应对学生的实习过程做出书面评语,指导教师结合学生的实际工作,及实习日记、实习报告、出勤情况,综合评定成绩。

生产实习成绩以优、良、中、及格和不及格五级分制评定,生产实习期间学生因故累计有三分之一时间未参加实习者,不予评定成绩。凡实习未通过者,不取得该学分。

7、指导教师

(1)由从事本专业工作的具有中级以上职称的教师或工程技术人员担任生产实习的指导教师。

(2)指导教师负责组织安排、指导学生的毕业实习工作。

(3)每位指导教师指导的学生不超过 15人。指导教师对每位学生的指导时间不低于3课时。

(4)指导教师在实习前做好学生的动员工作,实习期间定期下工地实习,了解学生的工作情况。和工地的指导教师密切配合,对学生的出勤情况及工作情况,实习日记等进行检查、督促和指导,发现问题及时解决。

8、实习时间

实习安排在第四学期以后,时间不得少于三周。

9、实习验收内容、验收办法

(1)验收内容:实习日记、实习报告

(2)验收办法:成绩评定后,由我校责任教师上传实践平台,省校先予通过,待毕业验收时和毕业设计一道验收。希望指导教师提醒学员,要认真完成生产实习,一旦验收不合格,将影响学员毕业。

(三)、毕业实习

1、实习目的 :毕业实习是土木工程专业教学计划中重要的实践性教学环节。其任务是使学生在毕业设计之前了解国内土木工程的最新成就及发展前景,增强感性认识,开阔视野,收集毕业设计资料,运用所学知识,综合理解土木工程的规划、设计、施工及管理方面的工作,了解工程师的职责,为毕业设计及毕业后尽快适应所从事的工作奠定基础。并通过实习,使学生了解我国土木工程发展现状、现代化施工技术以及土木工程方面的其它最新发展,培养热爱专业、致力于祖国社会主义建设的思想。

2、实习内容

(1)参观已建成的典型、有特色的新型土木工程,以了解最新的土木工程发展状况和技术。

(2)参观在建的典型、有特色的工程,以了解最新的土木工程的施工 技术和优秀施工企业的管理工作。

(3)专题讲座。通过有关地基基础、结构、施工技术与管理等的专家讲座进一步了解土木工程最新研究成果及发展趋势。

(4)根据毕业设计题目,有针对性地参观已建或在建的工程,以收集毕业设计资料。

3、实习方式

(1)听取报告:由实习单位选派专业技术人员向学生作有关新型建筑材料、地基基础、结构、施工技术与管理等方面的专题报告,以使学生了解以上各方面的最新技术与成果。(2)组织参观:组织对实习单位施工现场及既有建筑物的参观,通过对有特色的已建或在建工程项目的参观,了解最新的土木工程发展状况和技术以及优秀企业的管理工作。(3)实习日记:在实习中,学生应将每天的工作,观察研究的结果,听取报告内容等认真记入实习日记,教师应随时检查实习日记。

(4)业务专题报告:业务专题报告要求学生运用在校内所学理论和知识对实习中某一方面问题进行细致、全面、深入的总结,提出自己的改进设想、建议,以提高学生运用专业知识分析问题和解决问题的能力。

(5)实习报告:实习结束,学生应提交书面的实习报告,报告内容可以是对实习收获的综述和总结,也可以是对某一专题写出专题报告,总结实习的收获,提出对实习工作的改进意见。实习报告能反映出学生对实习内容理解的深度,也能反映出学生分析和归纳问题的能力,实习报告应图文并茂,总字数不宜少于5000字。

(6)实习的考核:学校实习指导教师依据实习指导人评语、实习日记、实习报告、实习答辩情况,确定最终实习成绩,实习成绩按五级分评定(优、良、中、及格、不及格)。指导教师对每位学生的指导时间不低于2课时。

4、实习验收内容、验收办法

(1)验收内容:指导教师评语、实习日记、实习报告

(2)验收办法:成绩评定后,由我校责任教师上传实践平台,省校先予通过,待毕业验收时和毕业设计一道验收。希望指导教师提醒学员,要认真完成生产实习,一旦验收不合格,将影响学员毕业。

三、毕业设计

毕业设计(论文)是完成和达到开放式教育土木工程专业培养目标所必须的实践性教学环节,对于培养学生综合运用所学基础理论、基本知识、基本技能和解决实际问题的能力,具有十分重要的作用。学生在参加毕业设计(论文)工作之前,必须修完教学计划中规定的全部课程(即规定的学分),毕业设计(论文)安排在最后一学期,时间约10周(8学分)。

(一)、毕业设计(论文)的目的和要求:

1、毕业设计(论文)的目的

(1)巩固和加深已学过的基础和专业知识,提高综合运用这些知识独立进行分析和解决实际问题的能力。

(2)掌握建筑工程专业设计的基本程序和方法,了解我国有关的建设方针和政策,正确使用专业的有关技术规范和规定。

(3)学会针对要解决的问题,广泛地搜集国内外有关资料,了解国内外的水平和状况。

(4)培养深入细致调查研究,理论联系实际,从经济、技术的观点全面分析和解决问题的方法及阐述自己观点的能力。

2、毕业设计(论文)的基本要求

(1)通过毕业设计(论文)应使学生具有调查研究、收集资料的能力,一定的方案比较、论证的能力,一定的理论分析与设计运算能力,并注意进一步培养应用计算机的能力,工程制图及编写说明书(论文)的能力。

(2)学生应在教师指导下按时独立完成所规定的内容和工作量。

(3)毕业设计说明书应包括与设计有关的阐述说明及计算,要求内容完整、计算准确、简洁明了,文字通顺、书写工整、装订整齐,说明书至少要5000字。计算中不宜大量采用手算,提倡应用电算技术解决复杂技术问题。设计说明书应包括目录、前言、正文、参考文献及附录。

(4)毕业设计图纸应能较好地表达设计意图,图面应布局合理、正确清晰、符合制图标准及有关规定,用工程字注文,主要图纸应基本达到施工图深度。图纸一般为4~6张(按1号图计),可以包括部分墨纸图。

(5)毕业论文应力求研究计划和方案合理、论点正确、论据可靠、层次清楚、文理通顺、书写工整。

(6)毕业设计(论文)文本按规范化要求装订。

(二)、指导教师

1.由从事本专业工作的,具有中级以上职称的教师或工程技术人员担任毕业设计(论文)的指导教师。同时具备安徽电大土木工程专业指导教师资格证书。

2.每位专职指导教师指导的学生人数不得超过15人,兼职指导教师指导的学生人数不得超过10人。

3.指导教师负责指导毕业设计的全过程,并对学生的设计成果设计表现作出评价。指导教师对每位学生的指导时间不低于10课时。

4.指导教师应认真负责,树立正确教育思想,认真指导学生查阅文献,做好开题报告,制定毕业设计进度计划,及时检查学生工作进展情况,发现问题及时予以纠正,并对实际完成情况做好记录。

5.指导教师应加强对学生毕业设计说明书方面的指导,做到论文及设计说明书条理清晰、逻辑性强,符合科技写作规范。并严格要求学生按照规定的文本格式打印和装订。指导教师要对论文及设计说明书、图纸认真审阅,并及时将问题反馈给学生,要求学生进一步修改,保证毕业设计质量。

(三)、毕业设计(论文)选题

1、选题原则

(1)毕业设计(论文)应按照教育要“三个面向”的要求,选题要符合培养目标的要求,能达到综合训练的目的,毕业设计(论文)应当有利于学生巩固、消化所学知识,有利于培养学生综合运用所学知识分析和解决实际问题的能力。

(2)选题要尽量选取既能满足教学基本要求,又能联系生产和科研实际的题目,提倡“真题真做”。选题也可模拟实际工程。

(3)选择课题的份量和难度要适中,使学生能在规定时间经努力可以完成为宜。(4)鼓励一人一题,若多人同做一个课题,每人除完成基本内容外,其它设计内容应各有侧重。

(5)原则上选题不选毕业论文,如果选择毕业论文,要求一人一个课题,课题必须新颖,要杜绝网上抄袭;课题要及时上报审查,论文的字数不少于10000字。

2、选题类型

(1)工程设计型

参考选题

1)建筑工程课群组:建筑面积3000m左右

结构类型:

混合结构、钢筋混凝土结构、钢结构;多层框架、单层工业厂房;

房屋类型:

写字楼、中小型宾馆、办公楼、中小学、幼儿园、俱乐部等;单层工业厂房;

建筑图纸可有指导教师提供,学员完成结构设计及施工组织设计。

2)道路、桥梁课群组

桥梁:钢筋混凝土、预应力混凝土简支、梁桥、承式桥台;

道路:直线、曲线、环合曲线线路,纵面、横面、平面设计;城市立交线型;

学员完成结构设计及施工组织设计。

(2)施工技术型

参考选题

1)高层建筑施工组织设计;

2)大型深基础施工方案和施工组织设计;

3)高层滑模施工方案和施工组织设计;

(3)建筑管理型

参考选题

1)建设项目管理、质量、投资进度控制;

2)国际工程招标、投标;

3)合同与索赔;

4)房地产投资分析、风险分析。

(4)专题研究型

专题研究型题目原则上要求来源于工程实践,通过调查研究、科学试验、文件检索等方法,采用合理的统计、计算手段,分析工程实践中出现的问题,提出解决问题的对策。学生可以本专业所学知识为基础且结合本身工作实际的选择这种类型题目。

(5)软件开发型

随着计算机技术在土木工程诸方面的广泛应用,如:结构分析程序设计、有限元程序设计、计算机辅助设计(CAD)、计算机辅助工程(CAE)、计算机教学辅助(CAI)、信息管理自动化、地理信息系统(GIS)、全球定位系统(GPS)等。学生可以选择以本专业所学知识为基础且结合本身工作实际的软件开发类型题目。

(四)、毕业设计的一般步骤

本专业毕业设计大体分为三个阶段为:选题收集资料;方案比较;设计计算绘图、编写毕业设计说明书。

毕业论文可分为三个阶段:选题、调查研究、收集资料;提出论点、阐述论据;撰写毕业论文。

(五)、毕业设计内容要求

1、工程方向毕业设计(1)基本要求

2a、根据课题任务制定合理、可行的毕业设计任务书; b、进行必要的课题任务调研、资料收集和文献阅读; c、每个课题小组的学生均应参与工程设计实现过程。d、要提交工程文档。

(2)工作内容:工作内容有建筑、结构、施工三部分,毕业设计至少应涉及两个部分,其中结构部分必做,建筑、施工为选做;可以建筑、结构为主,也可以结构、施工为主;当以结构施工为主时,建筑方案图可由指导教师提供。结构计算要考虑抗震计算,计算工作方法学员可以按自己的建筑结构选择计算(如选一榀框架计算),也可以有辅导教师指定一个建筑结构方案有分工的进行全部结构计算。

(3)工作量

a、毕业设计图应能较好的表达设计意图,图纸布局合理、正确清晰、符合制图及有关规定,用工程字注文。主要图纸应基本达到施工图深度,图纸一般为4~6张(按1号图计),可以包括部分墨纸图。

b、计算书一律用专用报告纸书写,字体必须工整,有条件者也可用计算机打印(A4版面)。计算书的编排顺序应与结构计算的顺序相同,插图必须清楚。计算书的页数不得少于70页。说明书、计算书要书写规范、文字通顺、图表清晰、数据完整、结果正确,装订规范;

(4)小组划分

学员参与各小组的组合以自愿结合与学校组织调整相结合形式,每组5--6人为宜

2、管理方向毕业设计

本方向毕业设计的主要任务是以其多层、高层建筑的单位工程为编制对象,在充分调查、研究、分析、论证的基础上,编制一个详细、完整、实用的单位工程施工组织设计。目的是通过编制单位工程施工组织设计,进一步提高学员的分析和解决施工组织管理的能力,进而检验学员通过本科学习后的真实水平。

(1)选择课题的要求

1)应选择的项目必须是多层、高层建筑(结构形式不限),该项目应具备全部土建图纸(包括建筑、结构施工图和其它基本数据)

2)该项目宜在本地区为已建或在建的项目,有明确的建设地点和具体的周围环境。

3)该项目应有较详尽的现场资料(包括水文地质、地下水位、冻深、气候等)每个设计组确定的工程不得与其它设计小组相同。

4)选择课题的结构形式可以是框-剪、框架、框筒或筒体等钢筋混凝土结构,可以钢结构,甚至一些新型的结构类型,(如屋顶可以是网架,有的可以是悬索、悬吊结构等)

5)该工程项目所包含的资料、信息应保证各小组从基础、主体乃至装饰、防水等各分部工程都能包括在施工组织设计的编制中。

(2)基本要求

总的要求为每个学员要有整齐、详尽的设计计算书,每小组的课题相同,但在内容编制上应多样性,体现每位学员的独立思考独立完成的过程。每位学员应独立完成4~6张及以上的1# 图纸。图纸应与自己上述完成的设计计算书相对应。(文字数量应在5万字以上为宜。)

其中设计计算书应包括以下主要内容:

1)工程的基本概况,工程的建筑、结构(必要时可包括相应其它工程)特征。

(主要是文字叙述,可以在设计计算书中绘制相应图纸加以辅助说明)

2)施工方案的选择(各位学员应有独特的选择)应以下几方面表达施工方案

a、施工机械的选择,施工方法的确定;

b、施工的顺序与流向;

c、流水施工的组织原则与方法。

(学员应从基坑支护、基坑降水、基础、主体防水、装饰的新材料、新工艺新方法中加以重点阐述。)

3)施工进度计划说明(包括该工程总工期,各分部工程起止日期、工期承诺、工期控制原则和保证措施等)

4)施工平面图布置(包括基础、主体、装饰施工三阶段布置特点说明,水电线路、设施等的布置说明)。

5)资源需用量计划(包括工、料、机的需用计划)

6)施工技术的工艺方法及质量措施

7)施工安全措施

8)现场文明施工措施

9)施工现场维护措施(可包括施工维护措施、施工现场保卫措施,现场消防安全措施,冬雨季施工措施等)

10)工程量清单(每组附一份计算过程的计算稿)

(3)应完成的图纸

1)施工进度计划

图纸1# 横道图 1张

图纸1# 网络图(单、双代号、时标、标时网络均可)1张

2)施工平面图

图纸1# 基础阶段施工平面布置图 1张

图纸1# 主体阶段施工平面布置图 1张

图纸1# 装饰阶段施工平面布置图 1张

3)另外施工方案中

图纸1# 主体施工阶段模板配量图 1张

(4)小组划分

学员参与各小组的组合以自愿结合与学校组织调整相结合形式,每组5--6人为宜

(六)、毕业设计的成果要求:

学生在规定时间内在教师指导下,独立完成毕业,设计(论文)工作,最后提交毕业(论文)文本,包括图纸及毕业设计文本。

1、文本的结构

(1)毕业设计(论文)的任务书;

(2)毕业设计(论文)的摘要;

(3)毕业设计(论文)目录;

(4)毕业论文或工程设计说明书(计算书);

(5)参考文献;

(6)附录;

2、以上内容的要求

(1)任务书:包括设计(论文)题目、论文的原始数据,主要参考资料、重点内容、设计指标;

(2)摘要:一般为400汉字,摘要介绍设计(论文)的研究课题,本人见解和主要结论;

(3)目录:按论文章节次序编好页码,设计图纸要有标号;

(4)论文或说明书要求论证严格,层次分明,语句通顺,表达确切,字体端正,论文报告及工程说明书一律用专用报告纸书写。

(5)参考文献按以下格式列出

[序号]作者姓名,期刊、名称、卷号、期数、页码(年份)

[序号]作者姓名、书名、出版单位、页码(年份)

(6)附录:与论文有关的数据表、计算机程序。

论文完成后按

(一)文本结构的顺序排列好,加以封皮,进行装订。

(七)、毕业设计的组织领导及成果评定

1.根据本实施方案所制定的毕业设计任务书,是毕业设计工作的具体依据,指导教师必须在毕业设计工作开始前阅读并领会这些文件的含义,学生要认真阅读毕业设计任务书,熟悉资料并明确自己的任务;

2.毕业设计在教师指导下由学生独立进行;指导教师应给所指导的学生指定题目,给予必须的原始资料,并下达设计任务书。在毕业设计过程中,指导教师对学生应严格要求,启发诱导,全面负责;

3.指导教师应根据毕业设计的内容由有关单位选派,必要时还应指定有关课程的教师作为答疑教师;

4.指导教师的业务领导人应分阶段检查毕业设计的进展情况,并及时解决存在的问题。

5.毕业答辩

(1)学生完成毕业设计或毕业论文后,经指导教师评阅,并给出评语和平时成绩,方可进行答辩;

(2)答辩委员会由本专业中级以上职称5~7人组成,其中高级职称不少于两人,答辩小组成员报省电大备案;指导教师可以参加毕业答辩小组,但不能担任指导学生的主答辩。答辩前由答辩主持人宣布答辩办法和成绩评定办法。

(3)答辨分设计情况介绍(10分钟),基本问题(5分钟)和追加问题(15分钟)的答辩。

6.学生答辩要求

⑴ 答辩前学生应提交设计成果。提交纸质材料2份和电子稿1份。

⑵ 演示毕业设计成果。利用幻灯片演示。

⑶ 答辩人陈述毕业设计的核心内容。陈述要语言精炼、重点突出,时间控制在5~10分钟;

7.毕业设计成绩的评定

(1)毕业设计的成绩有开题报告成绩、中期考核成绩、毕业设计成果(施工图、说明书、计算书)和答辩成绩四部分组成。

(2)开题报告10%,由指导老师评定。

1)开题报告的内容可包括方案论证,文献综述和进程计划。

2)由我校负责组织安排开题报告,由指导教师评定成绩。

(3)中期考核20%,由指导老师评定。

1)学生以书面形式汇报课题设计进展情况

2)由我校负责组织安排中期考核,由指导教师根据学生设计进展情况评定成绩。对未达到进度要求的学生提出指导要求并给予警告。

(4)施工图、说明书、计算书的评阅成绩:20%,由指导教师根据施工图、说明书、计算书的质量评定成绩。

(5)答辩成绩:50%,由答辩小组评定。

(6)毕业设计成绩,由答辩委员会综合审定。毕业设计成绩低于60分为不及格,60~69为及格,70~79为中等,80~89为良好,90~100为优秀。毕业设计成绩不及格者不能毕业,并且至少过半年才能重新申请答辩。要严格控制成绩优秀的人数比例,一般应不高于20%。成绩评定方法:

毕业设计(论文)成绩采用结构评分的办法。先按百分制评分,然后折算成五级分。

结构评分办法:

公式为

Y05X10.5Xni

Y:毕业设计成绩,X1指导教师的评分,Xi:答辩小组每位教师的评分(不包括指导教师评分),n:答辩小组人数。

(7)毕业设计由省电大统一安排,相对集中进行。各教学点应随时接受中央电大和省电大的监督和检查。

四、集中实践性教学环节的验收 1.我校应将毕业设计领导小组、毕业设计选题(任务书)、毕业设计学生名单(含选题)、毕业设计教师名单(含选题)、答辩委员会名单、答辩时间安排、学生最终毕业设计成绩等通过网上实践平台报省校审批。相关的文字材料(一式四份)由市电大审查后,报省电大教学处复审,经复审通过加盖教学处公章后确认。未经省电大教学处复审的成绩不予认可。

2.毕业设计各教学实践阶段指导教师和每位学员应认真填写“人才培养模式改革和开放教育试点理工类毕业设计(论文)”表格,教学班还应认真填写毕业设计验收总表,作为毕业验收的重要教学依据,并作为教学档案保存。

3.各试点教学班应将毕业答辩时间提前一个月通过实践平台报省电大教学处和学科组。省电大教学处和学科组将派土木工程答辩主持人主持教学班的毕业答辩,同时进行毕业验收。毕业验收前我校应准备好各集中实践环节验收总表,验收总表的内容是各集中实践环节科目、学生名单(含学号)、学生成绩、指导教师、学生上报材料题目等。

4.课程集中实践教学环节主要有生产实习、课程设计、毕业实习,验收办法是我校先验收、然后省校全部验收;对验收出现不合格者,该门课程集中实践教学环节必须重做,这将直接影响学生按时毕业,各试点教学班和辅导教师要提前通知学生认真完成课程集中实践教学环节。

5.各种材料网上报批时间参照省校教学处实践环节有关文件进行;申报材料的有关表格请各试点教学班到网上实践平台自行下载,申报材料必须及时上传实践平台。

五、课程实践环节的验收

1.课程实践环节(不记学分的)主要有课程作业、实验等。学生必须按照教学大纲的要求,完成应做的(至少是必做的)全部实验。未完成实验或实验不合格者,不能取得该课程的学分;课程实验应在能达到教学要求的实验室进行,对于暂时确无条件完成的实验,可以进行模拟实验代替;实验教学应尽量与该门课程的理论教学同步进行。如确有困难,应在假期完成,不得拖到下一学期进行。

2.一门课程规定的全部实验完成后,教学班填写实验成绩汇总表,经实验指导教师签名,我校教学处审核验收。对教学班已完成的课程实验,我校应进行检查、验收。如发现实验弄虚作假者,已做实验作不及格处理。

3.课程实践环节的验收办法是我校验收,省校抽查,对于抽查不合格的,该课程实践环节成绩无效,不得取得该门课程的学分。我校应将准备好的课程实践环节验收总表,验收总表的内容是各课程实践环节科目、学生名单(含学号)、学生成绩、指导教师、学生上报材料题目等整理归档,以备检查。

六、检查和交流

1、各试点教学班应对各实践教学环节的教学实施情况及时总结,总结材料报教学处,市电大教学处将不定期的组织开展教学交流和研讨活动。

2、各试点教学班辅导员应重视和加强对实践性教学环节的教学管理,做好实践性教学环节的教学档案管理工作。市电大教学处将定期组织开展教学档案的检查活动。

6.《编译原理》课程设计要求 篇六

“编译原理”是计算机科学及相关专业的一门核心专业基础课程, 由于涉及形式语言、有穷自动机等抽象内容, 学生在学习过程中存在较大的困难, 被戏称为“天书”。该课程主要介绍了高级程序设计语言编译系统的构造原理、设计方法以及主要实现技术, 综合了离散数学、数据结构、算法设计与分析、形式语言与自动机、程序设计原理、程序设计语言等知识, 具有概念多、理论性强等特点。学生通过系统地学习这门课程, 不仅能够了解编译系统内部的工作原理, 加深对程序设计语言的真正理解, 而且还能有助于提高学生的计算机思维能力、实践动手能力和综合运用专业知识的能力。

一、编译原理课程教学存在的问题

长期以来, 由于编译原理课程具有较强的理论性和实践性, 学生在学习过程中感到很吃力。究其原因, 总结起来主要有以下两个方面的问题。

1. 课程本身理论性太强

该课程内容丰富、抽象, 且具有严密的逻辑性, 它除了具有自身的一套理论体系, 还涉及到大量的其他课程的理论知识, 如形式语言与自动机理论、离散数学、算法等。对于本科生而言, 要学好这些理论本身就有一定的难度。

2. 实践性环节比较薄弱

编译程序是大型复杂的软件系统, 其实现涉及到若干课程, 综合性、连贯性均很强, 学生实验难度很大, 因此, 很多教师对实验重视不够, 实验内容安排也比较随意, 导致实验效果较差, 影响学生动手能力的提高。

笔者长期承担“编译原理”课程的教学工作, 结合多年的编译原理教学实践, 针对以上问题, 从以下几个方面入手进行了教学改革和创新, 积累了一定的经验, 取得了良好的教学效果。

二、明确课程与计算机专业人才培养目标的关系

目前, 按照我国高校的教育现状, 其人才培养目标大致可以分为学术型人才培养和工程型人才培养。学术型人才在取得本科学位以后, 可能会继续学业到硕士或博士阶段, 将来的主要职业以从事学术研究为主;而工程型人才本科毕业后, 主要职业是在工业界发展, 从事与计算机有关的开发和应用方面的工作。工程型人才的社会需求量远大于学术型人才, 但是学术型人才培养对提高国家的学术竞争力至关重要。虽然本科培养方案中尚没有进行区分, 但未来走向决定了不同类型的人才在本科阶段的基础应有区别。因此, 编译原理课程定位有必要参照这两类人才培养要求来确定[1]。对于学术型人才的培养设计一个主要以强调理论性的课程内容, 而对于应用型人才的培养则侧重于编译器的设计和实现, 提高学习编程语言及在程序开发中应用编程语言的能力。培养目标的不同, 将直接影响到授课教师对课程内容进行的剪裁。

三、优化课程的理论教学环节, 提高教学质量

1. 精选教学内容

笔者认为, 教学内容和习题应包括一些从实际碰到的问题中抽象出来的例题和习题, 鼓励学生用所学的知识去分析和解决实际问题。紧紧围绕编译的具体过程这样一条主线, 建议的主要教学内容如下。

(1) 词法分析

首先应明确词法分析的任务, 然后重点讲解词法分析器的设计过程, 如预处理、单词符号的超前搜索、状态转换图以及状态转换图的实现;接着介绍正则表达式与自动机的相关理论, 最后讲解词法分析器自动生成器工具的原理及使用方法。

(2) 语法分析

首先应介绍语法分析的必备知识上下文无关文法, 然后将语法分析分成两个大类予以介绍:自上而下的语法分析和自下而上的语法分析。自上而下的语法分析包括LL (1) 文法和递归下降分析法, 由于它们比较直观, 便于学生接受, 应首先介绍。其次, 介绍自下而上的语法分析, 它主要包括算符优先分析法和LR分析法, 由于目前的编译器的语法分析已不再使用算符优先分析法, 因此, 可以只介绍LR分析法。最后, 介绍语法分析器自动生成器工具的原理及使用方法[2]。

(3) 语义分析及中间代码生成

首先介绍语义分析的基础知识:属性文法和语法制导翻译。然后把语义分析的重点放在类型检查上。类型系统在编程语言的设计中占据重要位置, 可以先介绍一下类型系统在编程语言中的作用, 然后用语义动作来表达类型检查算法。对于中间代码的生成, 则主要介绍各种形式的中间语言, 把赋值语句和各种控制流语句翻译成中间代码的语义动作。对于类型和变量声明语句, 则主要关注怎样按语言的作用域规则组织符号表[2]。

(4) 运行时存储空间的组织和管理

对于这部分内容, 应主要介绍局部存储分配策略 (即一个活动记录中各类数据的组织) , 静态分配、栈式分配和堆式分配等三种全局存储分配策略, 非局部名字的访问方式和各种参数传递方式的实现。

(5) 优化

优化可在编译的各个阶段进行, 但最主要的一类优化是在目标代码生成以前, 对语法分析后的中间代码进行的, 这类优化不依赖于具体计算机。这部分内容建议重点介绍基于块内的局部优化。

(6) 目标代码生成

编译模型的最后一个阶段是目标代码生成, 它通常以语义分析后或优化后的中间代码为输入, 以产生等价目标程序为输出。应重点介绍一种采用简单的寄存器分配策略的代码生成算法, 让学生对代码生成有所了解。

2. 改进教学模式

对于编译原理这种理论性和抽象性都很强的课程来讲, 采用一种恰当的教学模式显得尤为重要。由于案例式教学具有实践性和形象性的特点, 刚好弥补编译课程教学难的问题, 因此, 它可以充分调动学生兴趣, 使其在分析案例、得出结论的过程中掌握理论知识。在教学过程中, 案例的主要形式是例题, 一般是具有代表性的例题或综合习题, 约占2/3的课堂时间。在课堂教学中, 合理结合黑板、粉笔和先进的多媒体教学技术, 建议相关算法理论采用幻灯片形式, 加大知识点的容量;而相应实例的讲授则建议采用板书形式, 可适当降低教学速度, 使学生有充裕的时间思考和掌握。比如, 在讲解正则式转化成等价的NFA这部分内容时, 首先把具体转换的方法以幻灯片形式快速地播放给学生看, 同时配上教师的简单讲解, 然后选取一个具体的例子详细分析, 让学生理解例子, 最后教师对例子进行小结, 归纳出一般性规律, 并让学生与前面的理论对比, 这样回过头读这些理论知识便会轻松很多、容易很多, 从而更加有助于其巩固对理论的理解。又如, 在介绍自动机、正则文法、正则表达式之间的相互转换以后, 还可以通过一道综合例题将这些知识融会贯通, 这样教学效果会更好[3,4]。为了巩固教学效果, 每次课后教师都应该有针对性地布置作业, 学生自己变为实例教学模型的主体, 教师再就作业中出现的问题安排习题课, 这样教学效果会更佳。

四、强化课程的实践教学环节, 提高学生的动手能力

实践活动是创新意识的源泉, 是创新能力的基础, 学生只有不断的在实验环节中尝试、探索、研究和创新, 才能不断提高解决工程问题的能力。“编译原理”课程对实践性要求较高, 学生在实验中掌握一些重要算法, 将数据结构、高级语言等内容融会贯通, 最终提高知识的综合应用能力。

1. 设计实验内容

首先, 要将编译理论和方法在实验中得以概括, 使学生不仅掌握它们本身具体应用, 而且掌握由这些理论和方法所构造编译程序的各个部件是如何在整个系统中协调运行, 这是实验最重要目的之一。其次, 必须合理地简化, 使学生比较容易完成。针对编译过程的五个阶段:词法分析、语法分析、语义分析与中间代码生成、优化及目标代码生成, 分别设置相应的实验项目。这些实验项目既和理论课内容相辅相承, 同时相互之间又互相关联, 构成了一个实验整体。采用这种实验教学体系所要求的实验学时较少, 一般为20学时左右, 并且可以跟随理论教学的进度安排, 这样既可以降低实验难度, 又利于学生及时将课堂知识应用于实验[5]。当然, 也可直接将实验部分设置为课程设计, 通常是要求设计一个简单语言的编译程序, 让学生用1~2周的时间来完成。这种实验教学体系与前一种相比更难, 需要学生在对编译原理知识系统理解掌握的基础上才能完成, 更加有利于学生对编译过程的有一个整体深入的认识。

2. 规范考核形式

考核是对学生学习效果的检验, 也是调动学生学习积极性的指挥棒, 对教学目标的实现具有至关重要的作用。“编译原理”实验课程的一个难点在于如何进行成绩评定。为了均衡理论和实验, 建议实验成绩占总评成绩的30%~40%。本着公正的原则, 笔者提出阶段考核和汇总考核相结合的成绩评定方法[6]。每个实验成绩由教师面试给出, 以学生对实验理论内容的理解和实现算法的思路为主, 并要求其分析具体源代码, 从而判断学生真正掌握知识的程度, 避免抄袭。在汇总考核阶段, 由学生主动申请, 采取公开答辩的形式, 答辩优秀的可以加分。通过以上措施, 较好地避免了以往实验中经常出现的偷懒现象, 同时也帮助学生树立了荣誉感和成就感。

五、结语

编译原理是一门理论性和实践性都很强的课程, 在计算机专业的教学体系中又有着非常重要的作用, 决定了该课程教学改革的长期性。通过“编译原理”课程的学习, 学生不仅能掌握编译程序本身的实现技术, 也能加深对程序设计语言的理解, 提高开发大型软件的能力。因此, 探索该课程的教学方法, 提高教学质量是从事计算机教育的工作者必须重视和探讨的问题。

参考文献

[1]赵银亮.浅谈编译原理课程的定位.西安邮电学院学报, 2010.7

[2]张昱, 陈意云, 郭宇, 李兆鹏.“编译原理”课程的教学内容选择的探讨.计算机教育, 2009.18

[3]刘洁, 黄贤英, 王柯柯, 曹琼.软件工程专业中编译原理课程的教学探讨.计算机教育, 2010.8 (16)

[4]王顺晔.“编译原理”课程教学方法的研究与实践.计算机教育, 2010.2 (3)

[5]王忠策.“编译原理”课程教学改革与实践探索.科技创新导报, 2010 (34)

7.编译原理学习心得 篇七

虽然编译原理这门课程在大多数的人里认为枯燥无味,学起来就像看天书一样。然而学习这门课程还是有一定的好处的。比如可以更加容易的理解在一个语言种哪些写法是等价的,哪些是有差异的,可以更加客观的比较不同语言的差异,并且学习新的语言的效率也会更加高,语言转换也会更加游刃有余。

不学“编译原理”这门课程的话,自己的编程思想会很浅显。而且编程也只仅仅停留在编程上,无法深入理解其中的原理。

学习编译原理的话,从文法、正规式、NFA与DFA的定义,下手,要用心动脑去体会

8.编译原理知识点总结 篇八

编译原理是大学计算机专业的必修科目,也是计算机的基础知识,学好编译原理,有助于更好的进行编程的操作,下面是编译原理知识点总结,一起来看看吧!

编译原理知识点总结

一 编译器

简单讲,编译器就是将“高级语言”翻译为“机器语言(低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器

(preprocessor) → 编译器 (compiler) → 汇编程序 (assembler) → 目标代码 (object code) → 链接器(Linker) → 可执行程序 (executables)

二 工作原理

编译是从源代码(通常为高阶语言)到能直接被计算机或虚拟机执行的目标代码(通常为低阶语言或机器语言)的翻译过程。然而,也存在从低阶语言到高阶语言的编译器,这类编译器中用来从由高阶语言生成的低阶语言代码重新生成高阶语言代码的又被叫做反编译器。

也有从一种高阶语言生成另一种高阶语言的编译器,或者生成一种需要进一步处理的的中间代码的编译器(又叫级联)。

典型的编译器输出是由包含入口点的名字和地址, 以及外部调用(到不在这个目标文件中的函数调用)的机器代码所组成的目标文件。一组目标文件,不必是同一编译器产生,但使用的编译器必需采用同样的输出格式,可以链接在一起并生成可以由用户直接执行的可执行程序

三 编译器的发展史

(1) 20世纪50年代

IBM的John Backus带领一个研究小组对FORTRAN语言及其编译器进行开发。但由于当时人们对编译理论了解不多,开发工作变得既复杂又艰苦。与此同时,Noam Chomsky开始了他对自然语言结构的研究。他的发现最终使得编译器的结构异常简单,甚至还带有了一些自动化。Chomsky的研究导致了根据语言文法的难易程度以及识别它们所需要的算法来对语言分类。正如现在所称的Chomsky架构(Chomsky Hierarchy),它包括了文法的四个层次:0型文法、1型文法、2型文法和3型文法,且其中的每一个都是其前者的特殊情况。2型文法(或上下文无关文法)被证明是程序设计语言中最有用的,而且今天它已代表着程序设计语言结构的标准方式。分析问题(parsing problem,用于上下文无关文法识别的`有效算法)的研究是在60年代和70年代,它相当完善的解决了这个问题。现在它已是编译原理中的一个标准部分。

有限状态自动机(Finite Automaton)和正则表达式(Regular Expression)同上下文无关文法紧密相关,它们与Chomsky的3型文法相对应。对它们的研究与Chomsky的研究几乎同时开始,并且引出了表示程序设计语言的单词的符号方式。

人们接着又深化了生成有效目标代码的方法,这就是最初的编译器,它们被一直使用至今。人们通常将其称为优化技术(Optimization Technique),但因其从未真正地得到过被优化了的目标代码而仅仅改进了它的有效性,因此实际上应称作代码改进技术(Code Improvement Technique)。

当分析问题变得好懂起来时,人们就在开发程序上花费了很大的功夫来研究这一部分的编译器自动构造。这些程序最初被称为编译器的编译器(Compiler-compiler),但更确切地应称为分析程序生成器(Parser Generator),这是因为它们仅仅能够自动处理编译的一部分。这些程序中最著名的是Yacc(Yet Another Compiler-compiler),它是由Steve Johnson在1975年为Unix系统编写的。类似的,有限状态自动机的研究也发展了一种称为扫描程序生成器(Scanner Generator)的工具,Lex(与Yacc同时,由Mike Lesk为Unix系统开发)是这其中的佼佼者。

在70年代后期和80年代早期,大量的项目都贯注于编译器其它部分的生成自动化,这其中就包括了代码生成。这些尝试并未取得多少成功,这大概是因为操作太复杂而人们又对其不甚了解。

(2) 国内编译器的研发历史

我国编译器研发工作起步并不算晚,早在60年代初期,董韫美院士和杨芙清院士就分别在中科院和北大领导研究组开发编译器,那时面向的高级语言是ALGOL和FORTRAN,目标机是国产机。

在改革开放前,由于国家需要,中科院、国防科大、江南计算所、北大等单位一直在研制国产计算机,包括大型机和高性能计算机(如向量机、并行机),相应的也在研制高级语言编译器。中科院计算所以董韫美院士领导的研究组先后开发了119机、109机的类 ALGOL语言编译器BCY。国防科大开发了向量编译器和向量识别器。

70年代中科院计算所张兆庆教授研究组(以后称ACTGroup)开始在国产机上研制FORTRAN语言编译器,先后参与了众多的院级和国家级科研攻关项目,主持开发了013,757,KJ8920等国产大型机系统中的FORTRAN语言编译器,所研制的编译器支持了数百万行应用软件的运行。

90年代以来ACTGroup承担科学院重大项目,国家攻关项目,863项目,以及国际合作项目,先后开发了共享内存多处理机的并行识别器,分布式内存多处理机的并行识别器, SIMD芯片和VLIW芯片的并行优化C编译器。将编译技术与图形学结合,ACTGroup还推出了集成化、可视化的并行编程环境。ACTGroup在先进编译技术和并行编程环境方面的研究工作获国内外专家高度评价,国际著名学者评价此研究组居编译领域的世界先进行列。

(3) 研究现状

编译器设计最近的发展包括:首先,编译器包括了更加复杂算法的应用程序它用于推断或简化程序中的信息;这又与更为复杂的程序设计语言的发展结合在一起。其中典型的有用于函数语言编译的Hindley-Milner类型检查的统一算法。其次,编译器已越来越成为基于窗口的交互开发环境(Interactive Development Environment,IDE)的一部分,它包括了编辑器、连接程序、调试程序以及项目管理程序。这样的IDE标准并没有多少,但是对标准的窗口环境进行开发已成为方向。另一方面,尽管近年来在编译原理领域进行了大量的研究,但是基本的编译器设计原理在近中都没有多大的改变,它现在正迅速地成为计算机科学课程中的中心环节。

在九十年代,作为GNU项目或其它开放源代码项目的一部分,许多免费编译器和编译器开发工具被开发出来。这些工具可用来编译所有的计算机程序语言。它们中的一些项目被认为是高质量的,而且对现代编译理论感性趣的人可以很容易的得到它们的免费源代码。

大约在,SGI公布了他们的一个工业化的并行化优化编译器Pro64的源代码,后被全世界多个编译器研究小组用来做研究平台,并命名为Open64。Open64的设计结构好,分析优化全面,是编译器高级研究的理想平台。

(4)国内编译器开发的现状

90年代以来,国内主要以研制并行机为主,相应的并行编译器研制也在国内开展起来。代表性的成果有:上海复旦大学朱传琪教授研究组研制的面向共享存储并行机的并行优化编译器AFT达到世界领先水平。

9.《编译原理》课程设计要求 篇九

计算机专业对学生主动学习和实践动手能力的要求较高,专业课教学在加强理论学习的同时必须面向设计,以培养学生创造性的思维方式。编译原理课程是计算机专业的主干课和必修课,同时也是一门实践性较强的课程,其中编译器的编写既有算法分析又有综合程序设计,涉及高级语言程序设计、形式语言和自动机理论、算法和软件工程等多门课程的学习。长期以来在编译原理课程教学中,采取的还是传统的“老师讲、学生记”的填鸭式教学模式,其不足之处是没有充分发挥学生的主观能动性,不利于学生自主学习能力的培养。同时由于实践教学体系不完整,缺少有效的实践教学手段,学生缺乏对教学内容系统化的认识,动手能力有待进一步提高。

基于PBL (Problem Based Learning)的教学模式是近年来在英美等发达国家较为流行的一种教学方法,该模式的主要教学特点是采取以问题为中心、学生为主体的自主学习方式。老师通过提问或给出项目等方式在课前引导学生查阅相关资料;学生采取小组讨论、合作等方式集体完成任务;课堂上老师通过让学生主讲等方式达到完成教学内容,提高学生分析问题、解决问题能力的目的。针对目前在编译原理课程教学中普遍存在的学生缺乏主观能动性、动手能力不强等问题,笔者拟将PBL新教学模式引入到编译原理课程教学中,旨在结合专业教学特点,研究PBL典型教学过程如典型问题的设计,并围绕问题重新设计课程教学体系,为计算机专业教学改革提供新的解决思路。

2. 基于PBL的《编译原理》课程教学设计

2.1 教学模式转变

我于2009年以访问学者身份赴美国北卡罗来纳大学州立大学计算机系,希望通过观摩国外本科专业课程,学习PBL教学模式及相关的教学方法。北卡罗来纳州立大学成立于1789年,位于美国的北卡罗来纳州,是美国成立最早的公立大学。PBL典型的教学过程包括:问题提出—组织小组—自主学习—合作交流—展示成果—总结评价。在国外,课堂教学前需要学生自己预习的内容比较多,有时有几十页之多;课程安排的实验环节多,每次做完实习内容还必须找TA(助教)验收;教学形式多样,特别注重实践和团队的合作。到每学期中间,老师会给每个组布置一个项目,每个组学生自由组合,几个人一组,老师任命一个组长。然后在剩下的两个月时间,同学们从最初的方案,程序设计,到最后做PPT,上台报告,都要合作完成。整个过程非常注重合作精神的培养,经常可以在图书馆看到三五成群的学生坐在一起讨论。期间要经常把阶段成果发给老师,老师给予相应指导,一起讨论实现方案。最后完成报告的提交,老师验收程序并推荐一个人上台做PPT工作。学生在做报告期间,其他同学有问题可以随时举手,课堂的交互性比较好。最终考核成绩由两部分组成,一部分是老师对小组的评价,一部分是组内各同学之间的相互匿名评分。通过学习观摩,我深刻体会到这种“学生为主体、问题为中心”的教学模式,在教师的整体把握和指导下,学生能主动地参与到教学的各个环节。但是考虑到国内教学实际,比如教学班较大、学时较少等问题,我们在具体实施时还不能简单地照搬国外模式,需重点研究如下问题。

2.1.1 问题和创新型的课程设计

如何围绕课程目标来设计问题并以此引出相关学习内容;设计的项目如何与实际应用接轨,更好地提高学生的学习兴趣;如何组织学生独立完成小型系统的设计、调试工作,使学生更好地将课本知识与实践活动相结合。这些都是有待研究与解决的课题。

2.1.2 考核标准的制定研究

为保证PBL教学模式的切实贯彻,研究有效的动态评价模式非常必要。通过有机结合教师评价、小组评价、自我评价,从多个角度地对学生学习活动即问题解决过程进行全面、客观的评价。

2.1.3 教师观念转变

开展PBL教学,教师承担着多种角色的变换,因此对教师的专业能力、实际问题的开发经验提出了更高的要求。

针对上述问题,我们结合教学现状,在问题设计、教学内容整合、创新型课程设计、考核标准制定等方面做了大量的工作。

2.2《编译原理》课程PBL教学模式设计

《编译原理》课程理论抽象、学习难度大,过去教学重点多放在理论部分,如各类语法分析算法的设计与学习,而实验环节的设置与安排仅仅只是对理论的初级验证,往往缺少代表性的编译器综合实验训练,在一定程度上影响了学生对编译器设计原理及内部处理机制的深入理解。根据PBL教学模式,问题是PBL教学活动开展的前提,为此我们结合实践根据教学内容,将问题设计分为单元PBL教学、综合PBL教学和实践PBL教学三大类。

2.2.1 单元PBL教学

编译原理课程有很多经典算法,单元PBL教学内容的设计以课程经典算法的理论学习和软件设计为主。如手工生成PASCAL语言词法分析器,应用FLEX自动生成词法分析器,应用算符优先法实现逆波兰表达式分析,利用BISON编写逆波兰表达式计算器等具有代表性的教学内容,我们让学生在理解掌握课程词法分析、语法分析等经典算法的基础上,通过小型项目的设计达到熟悉设计流程,体会软件工程思想的目的。

2.2.2 综合PBL实验教学

传统实验教学主要偏重编译程序各阶段的实现,较少涉及完整编译器项目构造。考虑到学生实际设计能力,我们构建了基于框架—插件式的编译原理创新型实验平台,通过该平台实现了综合PBL实验教学。平台以TINY语言为高级语言,以MIPS汇编语言为低级语言,实现从TINY到MIPS的编译器构造。

创新型实验平台提供词法分析、LR (1)语法分析、语义分析(类型检查)、代码生成、代码优化等五个模块,其中每个模块被设计为一个单独的插件。任务分配时,不同的小组完成编译器不同模块的设计;具体实现时,学生并不需要考虑其他模块的设计与实现,只要专心设计完成相应的插件,就能得到一个完整的编译程序。

2.2.3 实践PBL教学

综合实践的主要目的是提高学生应用编译技术解决实际问题的能力,以此为基础开展本科生毕业设计。我们在2008、2009届毕业生中以形式语言和自动机理论为基础,开展相关实践设计。设计内容包括《基于元胞自动机的城市演化》、《基于L系统的植物花序仿真方法研究》等。学生通过将课本知识与实践活动相结合,达到综合实践、学以致用的目的。

2.3 PBL教学模式实施

通过上述问题设计,在此基础上我们采取分组实践形式具体实施PBL教学模式,每组由5—6名学生组成。分组后老师首先帮助学生明确问题主要研究内容、任务具体分配及验收方式等。在问题提出阶段,老师以引导为主,让学生明确问题,引导学生通过网络、图书馆等各种渠道搜集相关设计资料;在任务分配阶段,由组长制定开发计划,选择开发平台,提出设计方案,分配组员具体设计工作,老师在该阶段重点检查设计方案的合理性;在具体设计与代码实现阶段,由学生完成详细设计包括代码编码、测试、集成等工作,老师在该阶段主要进行组内工作协调等;问题完成后,老师组织学生进行编码测试、分组答辩、结果评比等多种形式展示设计结果。

该教学模式分别在06、07两届学生中小范围尝试,从实施情况看,课堂气氛活跃,学生普遍反映通过自主学习,合作开发,课堂讲解等多种教学形式,更好地理解了算法。这同时也为教师组织教学、考核评价提出了更高的要求。

2.4 PBL教学模式考核标准研究

传统编译原理课程考核主要采用笔试形式,而新PBL教学模式形式多样,因此标准的制定应强调评价的多元性,即将教师评价、小组评价和自我评价等有机结合起来,保护每个学生积极参与的热情,避免吃“大锅饭”的现象,保证PBL教学模式能够切实有力地贯彻。

为多角度地了解学生的学习活动,考查根据每次讨论学生发言的次数、质量、最终提交的书面报告及每个学生在问题实现过程所做的贡献进行,最终成绩应该包括两部分,一部分是老师对小组的评价,一部分是组内各同学之间的匿名相互评分,通过对问题设计实现的整个过程进行全面、客观的评价,保证PBL教学的效果。基于新教学模式考核标准研究还有待在今后的教学中进一步地摸索、改进。

3. 结语

基于PBL的教学模式的特点是以问题为中心,以学生为主体,我们围绕PBL典型教学过程,将PBL新教学模式引入到编译原理课程教学中,根据实际教学情况总结了一些经典案例,开发了与之相关的创新型实验平台,并重新设计了课程教学体系。这种启发引导为主的教学模式,能够提高学生自主学习、合作开发、解决问题的能力。但是教学方法、教学手段的改革是一个长期的过程,其中教学模式的转化是根本出发点,课程内容的优化、组合,以及教学方法的改革是个长期的过程。这些还需要我们根据教学实际情况,及时调整优化并在以后的教学实践中摸索,进一步提高教学水平,为计算机专业教学改革提供新的解决途径。

摘要:基于PBL教学模式的特点是以问题为中心, 学生为主体, 能较好地提高学生分析问题、解决问题的能力。针对目前编译原理课程教学中普遍存在的学生缺乏主观能动性、动手能力不强等问题, 作者结合教学实际, 将PBL新教学模式引入到编译原理课程教学中, 就典型问题设计、围绕问题重新设计课程教学体系等问题进行了探讨和研究, 研究表明新教学模式能提高学生自主学习、解决问题的能力, 为计算机专业教学改革提供了新的解决思路。

关键词:PBL,《编译原理》课程教学,课程教学体系

参考文献

[1]毛玉萃.编译原理实验课的实践探索[J].大连大学学报, 2004, 25, (6) .

[2]曹琼.浅淡编译原理实验课程教学[J].计算机教育, 2007, (18) .

[3]刘远兴.“基于问题的教学”在软件类课程教学中的实践与探讨[J].考试周刊, 2010, (12) .

[4]王改芳, 龚君芳, 李圣文, 张冬梅.《编译原理》课程实践教学改革探索[J].实验技术与管理, 2009, (12) .

[5]朱文华, 王荣波.基于建构主义的编译原理实践教学研究[J].杭州电子科技大学学报 (社科版) , 2008, (4) :67-70.

[6]舒忠梅, 李文军, 周晓聪.编译原理教学改革实践初探[J].中山大学学报 (自然科学版) , 2007, (S2) :101-104.

[7]温世浩.PBL和非PBL毕业生的综合能力比较.复旦教育论坛, 2006, (02) .

10.《编译原理》课程设计要求 篇十

编译原理课程是计算机科学与技术专业重要专业课,不仅能帮助学生更深入地了解计算机以及计算机程序本质,还能提高学生进行问题求解能力.本文根据编译原理课程特点,结合自己教学经验,探讨了普通本科院校编译原理的教学内容的选取与实践教学内容设置,对普通高校更深人的教学改革和创新人才的培养具有一定意义.

作 者:朱素英  作者单位:湖南人文科技学院计算机系,湖南,娄底,417000 刊 名:科技致富向导 英文刊名:KEJI ZHIFU XIANGDAO 年,卷(期): ”"(6) 分类号:G64 关键词:编译原理   教学内容   实验教学  

11.微机原理课程设计 篇十一

一、本次课程设计的目的和意义

学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。

二、设计时间、基本要求

(一)、设计时间:二周(二)、基本要求:

a.每题2人;b.设计出完整的接口电路;c.编写出全部程序;d.在实验系统上调试通过。

三、设计选题与要求

选题一:多路模拟数据采集系统设计

要求:设计一个2路以上的模拟数据采集系统。

1、用按键选择那一路;

2、用LED显示转换结果(十进制数);

3、将每一路采集的100个数据存放到各自的存储区中。

选题二:温度测控系统的设计

要求:利用ADC0809设计一个温度测控系统,在LED数码显示器上显示温度值,并对温度进行测试和控制,当检测温度到达温度上限60℃时开风扇(即开启电动机,或以一个灯的亮灭表示),低于下限30℃时关闭风扇,LED上的显示内容为:XX ℃(采用十进制显示)。

选题三:函数发生器的设计(一)要求:利用DAC0832设计一个函数发生器,并利用按键选择输出波形,能分别产生三角波、阶梯波(每阶梯1V)、正向锯齿波、负向锯齿波和方波。并利用按键(自行定义)进行输出波形选择,同时将当前输出波形代号显示在LED上(左边位):0为方波、1为正向锯齿波、2为负向锯齿波、3 为三角波、4为阶梯波。

选题四:函数发生器的设计(二)要求:设计一个三角波发生器,可利用键盘改变其输出波形的幅值。例如,可利用1-5这5个数字键改变其输出波形的幅值,当按下1-5数字键时使D/A输出幅值从1V增加到5V。

选题五:电子音乐播放器

要求:设计要求:利用8253作为音阶频率发生器,应先对“2008年奥运会主题歌”进行编码后存入音符表,并建立好音阶表(只建立一个8度即可),音符长度不能少于60个,连续播放3遍后停止。

选题六:键盘电子乐器

要求:利用并行接口8155作为键盘接口,设计一个具有2个八度音阶的键盘乐器,音阶键不少于16个,采用扫描方式管理键盘,音域范围自行定义。

选题七:电子时钟设计

要求:利用8253定时器设计一个具有时、分、秒显示的电子时钟,并定义一个启动键,当按下该

键时时钟从当前设定值(可在显示缓冲区中予置)开始走时。

选题八:压力测控系统的设计(一)要求:对压力传感器的信号进行检测并在LED数码显示器上显示压力值,当压力低于30pa时,黄灯闪烁,闪烁周期为1秒。当压力高于150pa时,红灯闪烁。LED的显示内容为P=XXX。X为测试值。

选题九:可变输出频率方波发生器设计

要求:设计一个输出方波频率可利用按键改变的方波信号发生器(可以使用D/A也可以直接使用8253产生方波),利用键盘选择方波发生器的输出频率并驱动喇叭。输出频率=键号*100HZ

选题十:直流电机速度控制器设计

要求:利用D/A转换器和按键设计一个直流电动机转速控制器。按键定义如下:0 停止,1-1/10转速,2-2/10转速„„ 9 最高速(D/A输出满量程),键号每加1,D/A输出增加0.5V

选题十一:可任意启动/停止的电子秒表设计

要求:6位LED数码显示,计时单位为1/100秒。利用功能键进行启/停控制。其功能为:上电后计时器清0,当第一次(或奇数次)按下启/停键时开始计数。第2次(或偶数次)按下该键时停止计时,再一次按启/停键时清零后重新开始计时„„

选题十二:温度测试系统设计

要求:利用温度传感器和ADC0809设计一个温度测试系统,将测试结果(十进制)在LED上显示出来,并定义一个保持按键,当按下该键时,将当前测试值保持不变(按键不动作时为正常测量显示)。温度显示格式为:XXX ℃。(可以每隔0.3秒测量一次)

选题十三:压力测试系统设计(二)要求:利用压力传感器和ADC0809设计一个压力测试系统,并将测试结果(十进制)在LED上显示出来,并定义一个测试最大值按键,当按下该键时,可进行最大值测量(按键不动作时为正常测量显示),即:只有当当前测量值大于上次测量值时才刷新显示,显示格式为:P=XXX。可以每隔0.3秒测量一次。

选题十四:简易计算器系统设计

要求:设计一个可以进行2位数四则运算的计算器。

1、用按键输入数和运算符号;

2、用LED显示运算过程和结果(十进制数);

3、可以表示出当前的运算类型;

4、具有清零和复位功能;

5、具有连续运算功能。

选题十五:交通灯控制系统

要求:按照时间控制原则,利用并行接口和定时器,设计一套十字路口的交通灯管理系统,通行时间(或禁止时间)30秒,准备时间3秒,在准备时间里黄灯闪烁3次,闪烁频率为0.5秒,周而复始。可利用8255、8253等接口电路。

选题十六:计件系统设计

要求:利用8253计数,对外界脉冲技术,并将计数值在数码管上显示,可通过键盘控制重新计数。

四、设计任务及要求

1、接口设计:根据所选题目和所用的接口电路芯片设计出完整的接口电路,并在实验系统上完成电路的连接和调试通过。

2、程序设计:要求画出程序框图,设计出全部程序并给出程序设计说明和程序注释。

3、课程设计报告:(1)设计题目;

(2)系统的主要功能、作用以及主要技术性能指标;

(3)总体设计方案、工作和组成原理(框图)或设计说明、采用的技术路线等;

(4)系统设计:接口电路设计,程序设计(程序框图和程序清单及注释)其他有关的理论分析和计算;

12.《编译原理》课程设计要求 篇十二

“编译原理”是计算机科学与技术及软件工程专业本科阶段的核心课程之一。“编译原理”的综合性比较强, 涉及的先修课程比较多, 包括离散数学, 程序设计, 数据结构, 汇编语言等。对学生专业知识掌握情况要求比较高, 是一门公认比较难学, 比较难教的课程, 因此如何让学生学好这门课程是任课老师要用心解决的问题[1]。学习这门课程有利于提高软件开发人员的素质和能力, 并且有限自动机理论, 形式化描述的方法, 自动生成方法, 数据流和控制流的方法对于提高软件人员的素质也是极为有益的。

传统的编译原理课程以讲授为主, 注重知识的传承, 在应用型本科教学的新形势下, 深化编译原理的教学改革, 使学生在掌握编译原理的基本概念, 理论, 算法之外, 研究课程的实践应用, 具有十分重要的意义。笔者尝试从三类本科院校学生的特点出发, 以培养应用型人才的思想角度, 对编译原理的应用型教学方法和教学内容进行初步探索, 交流在编译原理课程教学实践中获得的一点体会。

1. 编译原理在应用型本科院校的现状

编译原理课程以介绍程序设计语言编译程序构造的基本原理和设计方法为教学目标, 是一门理论性, 实践性, 技术性很强的课程。要教好这门课程, 必须从三个方面来研究 :

1.1 明确授课的对象

笔者主要从事三类本科学校计算机专业的教学工作, 授课的对象主要是三类本科计算机专业的学生, 对于三类本科院校或者高职院校的计算机系学生来说, 学生普遍基础知识不是很扎实, 学习能力和思维水平落后于重点本科院校。编译原理课程里边的很多内容较抽象, 逻辑推理复杂, 理论性较强, 容易让学生在学习上产生畏难心里, 再加上感觉自己将来参加编译程序开发工作的可能性不大, 因此学习的积极性普遍不是很好, 最终导致不认真上课, 不认真复习, 难以达到教学目标。因此用培养基础理论研究人才的研究性教学方法显然是不合适的。即使教师课上的很好, 也会有曲高和寡的感觉, 这也同时打击老师和学生的信心。因此明确授课的对象是做好本教学工作的首先任务[2]。

1.2 编译原理课程的特点

本课程教学中广泛采用的经典教材有龙书、虎书、鲸书以及陈火旺, 吕映芝等人的教材。编译原理课程主要的目的是介绍编译程序的一般构造过程, 在学习经典理论和算法的同时培养学生的计算思维[3], 因此编译原理和一般性计算机课程不同, 它的理论性比较强, 经典理论和算法的讲解是教学的重点。编译程序的构造包括词法分析、语法分析、语义分析、中间代码生成、代码优化以及目标代码生成这六个部分。其中词法分析, 语法分析, 语义分析以及中间代码生成被称为编译前端, 这部分主要和源程序密切相关, 主要讲解文法和语言的概念, 正规集和正规产生式, 自动机理论, LL (1) 文法, 算符文法, LR文法以及语义和语法制导翻译等, 前端主要突出的是算法和计算过程, 理论相对成熟, 一般很难在短期里有巨大的改进, 以理论的讲解传授为主, 是编译原理授课的主要内容。代码优化和目标代码生成属于编译程序的后端, 和具体的目标机密切相关, 编译后端主要的教学内容集中于编译产生的中间代码的优化以及目标部署, 这部分内容与实际应用结合更紧密, 可操作性比较强, 便于实践。

1.3 人才培养的定位

传统的编译原理教学强调知识的传承, 注重计算思维的培养。在教学中, 经典理论和先进技术之间的联系缺乏具体形象, 可实践的操作更少。对于非研究型的三本或者高职学生来讲, 培养的目标主要是应用型人才, 能够将所学更多的应用于工程实践中。为了培养学生们对编译原理这门课程的热情, 更为了能够学有所用, 应该将枯燥的理论部分化繁为简, 在突出重点算法和思维方法的同时, 多增加实践, 培养学生的学习热情[4]。即在学生合理的掌握编译原理的基本理论和算法的基础上, 多增加编译程序相关的项目实践, 通过实践来激发学生的学习兴趣, 通过任务驱动方法来实现教学目标。

2. 编译原理课程的课程设计

编译原理的课程设计是讲好这门课程的关键, 因此需要有针对性的进行研究探索。由于编译原理是一门理论和实践都很强的课程, 根据编译程序的构造过程可以将其划分为前端和后端两个阶段, 这两个阶段的教学教学方法和教学目标区别较大, 因此笔者将这两部分分成两个阶段来进行设计, 即以讲授为主的经典算法和理论课程设计和以实践为主的基于目标驱动的实践课程设计。下面通过这两个方面来介绍编译原理的课程改革。

2.1 合理的理论课程设计

相对于重点本科院校的学生, 三类本科院校的学生基础知识掌握的不是很扎实, 缺乏对理论学习的热情, 加上编译原理课程的概念定义多, 逻辑推理也多, 单纯的讲解理论算法很难使学生理解。要想更好更准确的使学生理解现有的理论基础, 必须在合理的理解概念的基础上, 多设计跟基本算法或者理论相关的案例, 通过一定的案例去消化这些理论, 让学生能够解答一定的典型习题后, 复杂的理论和逻辑推理自然能够理解和记住, 笔者一般通过下列方法来培养学生对编译这门课程的兴趣:

2.1.1 合理的理论知识的设计

编译原理主要讲授编译程序构造相关理论, 包括文法和语言, 形式语言与自动机, LL (1) 文法, LR分析方法等, 具体描述了编译6个阶段 - 词法分析, 语法分析, 语义分析, 中间代码生成, 代码优化和目标代码生成的实施细节。内容比较多, 需要进行合理安排, 笔者将代码优化和目标代码生成进行删减, 因为这两部分内容几乎很少用在工程中, 因此没必要把时间花在这些应用不多的理论上。其次就是删减一些需要深入证明的内容, 这些需要深入证明的理论不是太过深奥就是实用性不大, 学起来比较吃力, 难以消化, 仅仅讲述其基础定义和应用情况即可。因此合理的选择相关的内容知识是很重要的事情。

2.1.2 生动的动画演绎

课件是每一个老师都要准备的教具, 对于编译原理的讲授, 笔者认为教师应该将逻辑推导的演化过程设计成动画演示, 形象生动的动画演示比干枯的理论条目更容易抓住学生吸引力。也可以在动画演示推理过程中增加提问, 让学生主动去思考, 增强教学过程中的互动。

2.1.3 增加典型习题的讲解, 以题促解

典型例题的讲解很重要, 往往学生很难理解的概念和算法, 可能通过一个习题的演算就可以理解了。因此在教学中, 在讲解经典算法的基础上, 多设计一些典型习题, 通过互动式探讨, 让学生作为习题解答的主体, 老师辅之以引导, 让学生在解答过程中收获自信。将经典的算法和理论通过典型例题求解比单纯传授知识来的更快, 也更易于为学生们理解。通过做题加深了学生对理论的理解, 尤其是将一些算法用于表达式描述, C程序语法判断等程序相关的内容, 培养了学生的计算思维。

2.2 任务驱动的实践教学

由于构造编译程序是一个非常庞大和复杂的工程, 对于三类本科院校的学生来说, 设计一个具有一定功能的编译器是很难完成的。这既是由于教学课时所限, 也由于理论水平所限。因此必须要有所取舍, 突出重点。

实践课程的设计主要放在可重定位的编译程序的移植。基于已有的成熟的编译程序进行目标移植能够使学生在抽象级平台上开发, 从而进一步编译程序的体系架构和后端重定位技术。笔者以GCC体系结构和后端移植为中心设计实践课程, 并通过任务驱动使学生们都参与进来。

GCC是一个开源的, 稳定的, 支持多语言和多目标的编译器。由于开发一个新的编译器的周期太长, 因此基于GCC编译器的移植正逐步应用到复杂嵌入式系统中。

GCC体系结构是一个典型的语法制导的优化编译器, 前端通过词法分析, 语法分析, 语义分析, 生成语法树, 对语法树简单优化之后, 将其转化为中间代码。后端接受前端产生的语法树, 将其转换为中间语言的表现形式, 在此基础上进行各种优化, 然后根据目标机的机器描述生成汇编程序代码。我们实验课程假定以某型号DSP为目标, 给出目标相关体系架构, 地址寻址空间, 支持的指令集, 编程模式以及寄存器结构等, 在工程实践中完成编译程序的后半部分学习。

根据需要先讲解编译程序所生成中间代码, GCC的中间语言由RTL描述, RTL是一种寄存器传输语言, 它的基本元素是RTX表达式, 通过讲解RTX的结构外部语法形式, 让学生了解每一条指令的中间表示。对于编译器的后端移植, 首先要定义目标系统的ABI定义, 机器描述文件等。GCC是支持多语言、多目标机编译系统中最有代表性的一个。这里只是简要概述了GCC的体系结构和移植GCC需要着重注意的几个关键环节, 其实GCC的移植还是有很多重要的工作, 移植人员不仅需要对目标架构以及指令有很深的了解, 并且也要对编译调试环境 (Bin Utils) 熟练掌握。目前GCC的移植已经成为使用安全可靠编译器的首选, 相关的移植技术和参考的文献也越来越多。这些对于在短期内获得编译器提供了便利, 当然要想获得高效优化的编译器, 还需要根据目标体系结构来制定更具体的优化方式, 因此还有大量的工作要做

3. 教学改革效果

经过这几年的教学实践, 我们认为该课程的教学改革取得了较好的效果, 学生们的学习热情大大提高, 从以前的被动学习, 消极应付, 到后来的觉得“很有趣, 很有用”, 在一定程度上保证了教学效果;其次, 通过教学改革, 学生由以前的只能记住部分理论定义, 应付考试, 缺少实践, 到现在主动去查找编译相关资料, 研究编译程序的内部结构, 并且主动做实验, 查看编译程序移植在嵌入式系统开发里面的最新应用, 从而增强了编译的理论知识和实践水平, 开阔了知识面。

结语

本文分析了编译原理课程在应用型本科院校开展所面临的问题, 针对应用型本科院校与研究性本科院校在学生基础理论水平和培养方向上的差异, 提出了对现有课程进行教学改革, 调整理论课的授课方式, 内容, 对于实践课程, 提出项目驱动的实践课程设计, 通过移植基于可重定位的GCC编译器来提高学生的动手能力, 这些措施大大提高学生的学习编译原理的积极性和主动性, 使学生的理论水平和实践水平都获得了极大的提升, 达到教学目的。

摘要:编译原理是计算机专业本科阶段的必修课之一, 在研究编译原理这门课程特点的基础上, 针对应用型本科院校学生的特点提出了合理的理论课程的设计和任务驱动的实践课程的研究, 并且通过课程改革可以大大提高学生对于这门课程的兴趣, 实现教学目标。

关键词:编译原理,应用型,课程设计,实践教学

参考文献

[1]吴海涛.“编译原理”课程实验教学研究与探索[J].北京:计算机教育, 2009 (4) :65-70.

[2]周会平, 王挺, 李梦君.关于编译原理课程定位的思考[J].计算机科学, 2011 (10) :45-47.

[3]王挺, 李梦君, 周会平.对编译原理课程教学中计算思维培养的探讨[J].计算机教育, 2009 (11) :11-13.

上一篇:初一4班节目单下一篇:城西小学举行小学生安全知识竞赛