编译原理课程教学研究

  【摘 要】目前的编译原理课程的教学中存在以下问题:1、教学内容偏重于原理;2、实验内容的语言不合理;3、实践环节太薄弱。针对此做出了如下的改变:1、区分不同层次的学生合理组织教学;2、灵活应用多种教学方法;3、加强学生动手能力。   【关键词】编译原理 改革 教学方法 动手能力 组织教学      一、引言   编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。   二、在教学过程中存在的问题   在编译原理课程的教学实践中,我们发现需要解决下列问题:1. 教学内容比较偏重于原理。编译原理中的核心理论是词法分析和语法分析这两部分, 如果说不去做题的话是不可能学懂的。那么按照这样的教学内容教课, 就容易给学生造成误解, 认为学编译原理关键就是会做题。但是事实上是不对的,编译原理不同于一般我们所学的纯理论课,它的实践性也是很强的。2. 实验内容所使用的语言不合理。目前大多数教材中的实验内容使用PL/0语言的编译程序。但是事实上因为PL/0语言是pascal的子集,而现在很多学生已经不再学习pascal语言了,所以大多数的程序是看不太明白的。3. 实践环节太薄弱。纵观整个编译原理的教学,事实上所偏重的都是理论教学,而真正的实践实在是少之又少,以致学生搞不太清楚研究编译原理到底有什么意义。   而且由于编译原理涉及的理论知识较多, 形成了一种抽象层面上的数据变换, 许多学生难以理解, 曾一度被视为天书。有些学生在专业课学习时还存在考研或实用的偏爱, 投入到编译原理的学习时间相对来说就较少, 给教学带来一定的影响。   三、 对这些问题做出的一些改进方法   针对以上的这些问题,我们有必要对编译原理这门课程做出一些改革。   第一,区分不同层次的学生合理组织教学。在教学过程中要考虑到大多数学生的学习现况,达到基本的教学目的,讲授编译原理的基本概念、基本知识,让绝大多数学生了解编译原理的基本思想,掌握常用的编译技术。具体的说,可以根据学生对编译原理的不同要求,将学生分为两个不同层次:第一层次的学生只是按大纲要求掌握编译原理的基本内容, 第二层次的学生则需要在第一层次基础上拓展和提高。这类学生一般是对编译原理有兴趣,准备考研或者是想掌握相应的编译技术的。教学内容应以第一层次的学生为基础, 而实验内容应考虑第二层次学生的要求。针对这样的情况,教学的主要内容相同, 但要求不同, 如课后作业可分必做和选做两种, 实验内容也可分必做和选做两种。在教学过程中, 应突出编译原理的主要内容以及基本框架, 对教材及教学内容做一定的取舍, 突出重点。   第二,灵活应用多种教学方法。利用启发式教学提高学生学习的积极性和主动性。根据教材的内在联系和学生的认识规律,由浅入深、由近及远、由表及里、由易到难逐步提出问题,解决问题、引导学生主动、积极、自觉的掌握知识。   采用形象化的方法来帮助学生掌握原理。比如,在讲解句型的短语、直接短语和句柄的时候,如果按照书上所给出的概念来做的话,学生理解起来非常困难,这个时候可以依靠语法树来帮助学生理解原理。语法树有几个内部节点就代表有几棵子树,每棵子树的叶节点从左至右排列组成一个短语 ,只具有父子两代的子树则组成了直接短语,而处于整棵语法树最左边的只具有父子两代的子树则构成了句柄。   利用实例教学,通过从环境中取得若干与某概念相关的例子,经过归纳得出一般性概念。首先让学生学习理论知识,然后讲解和知识相关的实例,让学生听懂例子,理解例子,学生再综合实践,从而激发学生学习这门课程的兴趣,增强了学生的自信心,为学好这门课排除心理障碍。   第三,加强学生的动手能力。为了帮助学生理解编译的各个过程,可以在学期最开始的时候布置给学生完成一个简单编译器的作业,等到学期结束的时候验收。这样,学生在学习理论知识的同时又锻炼了自己的动手能力,并且加深了对整个编译器工作过程的理解。因为,如果不理解编译器编译的各个过程的话,是无法很好的完成这样一个编译器的。   四、总结   编译原理是计算机科学以及相关专业的一门重要的专业基础课程,尤其是对于软件专业的学生来说,学习编译原理可以帮助他们更好地了解计算机的底层工作,从而才能开发出能够满足客户和计算机双重需要的软件。所以,老师在教学过程中应该注重理论与实践的结合,认真的组织编译原理课程实践,将阅读代码与动手完成真正的编译器结合,提高实验的效果,帮助学生打好扎实的理论基础的同时并具备较强的实践能力,提高教学质量。


© 2024 实用范文网 | 联系我们: webmaster# 6400.net.cn