《编译原理》教学方法初探

来源 :课程教育研究·新教师教学 | 被引量 : 0次 | 上传用户:atianjun
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:编译原理是计算机学科的一门核心课程,因其理论性和实践性较强,内容抽象,算法复杂成为计算机专业较难的一门课程。本文介绍了编译原理授课的现状,就存在的问题,从明确学生的学习这门课的目标,提高学习兴趣、精选教学内容和加强实践环节三个方面进行了讨论。
  关键词:编译原理;教学方法
  TP314-4
  编译原理是计算机相关专业的核心课程,是一门公认比较难学的课程。通过学习编译知识,有助于学生从宏观上把握编程语言;编译技术涉及到计算机的系统结构、指令集结构以及相关的操作系统,掌握编译技术有助于更进一步地理解计算机系统;从软件工程的角度来看,编译器是一个很好的系统软件,它所涉及的算法和技术可直接复用于软件开发的实践[1]。
  一、教学现状
  编译原理课程的理论性和实践性较强,在该课程的学习过程中涉及到大量抽象的理论知识,而实践动手环节的教学效果受制于对理论的理解程度。教学过程中,存在的问题有以下几个。
  首先,学生对编译原理课程不够重视,缺乏学习动力。大多数的同学认为,编译原理课程的学习,与今后的就业没有多大的联系。而且就目前计算机领域的发展现状而言,并不需要重复编写构造编译器;课程本身的难度较大,有同学反应,课堂上老师讲授的知识可以理解,但是下课后往往想不起来;从而导致学生在学生过程中,学习积极性不够,动力不足。
  其次,编译原理课程综合性较强,难度较大。涉及到的先修课程包括离散数学、程序设计基础、算法与数据结构、汇编语言、操作系统等,学生对这些先修课的基础知识的掌握程度参差不齐,甚至于有些学生根本没有掌握必要的基础知识;另外,该课程涉及的理论知识抽象,难以理解,如自动机理论等,涉及到的算法复杂,不容易实现,如语法分析阶段的自下而上的分析算法等,对于编译程序这个系统软件,各模块之间接口复杂,学生从整体上理解编译程序也存在一定困难。
  第三,实践效果不理想。该课程的实践涉及许多其他相关课程的知识,因此,需要学生有较高的综合运用知识的能力,对于大多数同学,实践具有较大难度,对于基础知识较差的同学来说,很难达到课程的要求。
  二、教学思路
  (一)明确课程学习目标及其重要性
  编译原理课程理论性较强,在讲授过程中,理论性的知识是授课的重点和难点。因此,整个上课过程中要让同学们明确学习该课程的意义,以及为什么要开设该课程,即学习编译原理的重要性,在整个课程的讲授过程中,可以多采用启发式教学方法,以期提高学生的学习兴趣。编译原理课程能够提高学生计算机思维能力。所谓计算机思维能力指的是具有抽象化与形式化思维的能力,编译器在设计过程中就运用了计算机思维的思想与方法,对学生进行计算机思维能力培养将有助于其更好地把握编译原理的目标[2]。另外,编译技术应用广泛,如软件系统安全、现有程序理解和软件工程的逆向工程等方面。
  (二)精選教学内容
  我们可以借鉴国内外知名大学在编译原理教学方面积累的宝贵的经验,如教学内容、教学方式以及教学手段等。但是,对于应用型普通本科院校而言,我们需要从自身的实际出发,根据我们的学生水平、课时的多少以及学校的办学特点,对编译原理的教学内容适当的选择,突出重点,是学生能够把握编译技术的核心内容。现在多数同学的注意力集中在一些细节的算法上,因此教学内容的选取原则是让学生宏观把握编译原理和技术。
  编译原理主要包括五个阶段的讲解,即:词法分析阶段、语法分析阶段、语义分析与中间代码产生、代码优化和目标代码产生。
  词法分析阶段,这部分内容的主线是正规式与有限自动机的相互转换,以及将有限自动机最小化。通过介绍正规式和有限自动机的概念,为什么需要转换,以及如何转换,让学生对有限自动机的识别功能,有个更深刻的理解。
  语法分析阶段,该内容包括自上而下语法分析和自下而上语法分析两种。根据两类分析方法的特点,指出每种分析方法面临的问题或者说所需解决的关键问题,每种分析方法适用的文法环境,然后讲解如何实现每种分析方法。这一部分主要讲解两种具体的分析方法,即LL(1)分析方法和LR(0)分析方法。
  自上而下的分析方法关键的问题是,非终结符有多个候选时,如何选择的问题,因此相关知识点较多,如消除递归(包括直接和间接)、消除回溯和求FIRST集FOLLOW集。对于这部分知识,学生容易把注意力集中在以上的具体算法上,所以,我们在教学中,需要重点讲述LL(1)分析方法的判别和预测分析表的构造,预测分析程序的构造和实现过程。可以采用案例教学法,以一个具体的小程序为例,讲解预测分析程序的实现过程,增强学生的直观感。
  自下而上的分析方法关键的问题是,寻找句柄。对于上下文无关文法的分析,LR分析方法是一種高效的方法,包括:LR(0)、SLR、规范LR和LALR方法。LR分析表的生成算法较为复杂,因此讲解时重点应放在LR实现的关键问题,即如何确定栈顶符号是否构成句柄。对于这部分内容,重点让学生掌握LR(0)的分析方法。因为SLR(1)已经能够适应大多数的文法,所以规范LR和LALR方法部分,只需要让学生了解即可。
  (三)加强实践环节
  编译原理是一门理论性和实践性较强的课程。理论知识抽象难懂,我们可以通过实践,使学生加深对理论知识的理解。在实践教学中,我们可以从基本的验证试验开始,让学生循序渐进的学习,避免一开始就要求学生完成很难的任务,打击学生的信息和积极性。试验内容方面,比如对于词法分析,让学生先练习LEX的使用,之后设计编制调试一个具体的语法分析程序,要求功能简单,能把源程序中的关键字、标识符、运算符、常量和分隔符等识别出来即可,旨在加深学生对词法分析基本原理的理解。最后可以交给学生一个综合性的试验任务,让学生将零散的知识点串接起来,形成一个整体概念。
  三、结束语
  《编译原理》课程是计算机专业的核心课程之一,针对当前编译原理教学中存在的问题,就如何提高学生学习兴趣、合理安排教学内容等方面作了一些研究和探索。
  参考文献:
  [1]何炎祥,伍春香.计算机专业不需要开设编译原理课程吗?[J].计算机教育,2009,(4):61-62
  [2]王福宁,李娜,闫爱平.编译原理课程教学改革研究综述[J].创新教育,2014(35):87
其他文献
摘要:高效课堂的出现是划时代的,解决了中国教育的“四大难题”:教育与育人的关系;学生个性与全面发展的关系;教师发展与学生发展的关系;素质教育与升学率的关系。  关键词:高效课堂;教学模式的改革;三维教学目标;地籍测量  P271-4  在新形势下的教育改革中,作为高职院校的一名专业课老师,传授的常常是一些枯燥的专业知识,学生往往想学好却不得法。枯燥的教学理论,推新除陈的各式教育方法,各式各樣的形式
摘要:基于工作过程导向的课程的开发包含两个方面,一是通过典型工作任务确定学习领域,构建出基于工作过程过程的课程体系,二是基于工作过程进行学习领域课程发展,提取典型工作任务,设计学习情境,以期完成每门课程的设计。本文首先介绍了电气自动专业基于工作过程课程体系的开发过程,最后以《变频器控制技术》课程为例,完成了基于工作过程导向的《变频器控制技术》课程的学习情境。  关键词:基于工作过程导向;典型工作任
TB34  本实验采用传统固相烧结工艺制备了SmFe1-xMnxO3(x=0,0.1,0.2,0.3)多铁陶瓷样品,研究不同含量的Mn掺杂对样品的铁电性能以及介电性能的影响。结果发现样品的铁电居里温度随着掺杂量的升高而逐渐降低。掺Mn以后样品的漏电流增大,因此我们未能测量到样品的铁电性能。  多铁材料是集合磁性能和电性能于一身的新型材料,它们之间广泛的存在着耦合作用,有着非常重要的研究价值[1]。
期刊
摘要:对高校专业设置的研究较为丰富,但是也存在不足之处。特别是对于在调整和优化高校专业结构的过程中出现的新问题,需要做更深入的研究。  关键词:民办本科高校;学科专业结构;调整优化  G648.4;G642  一、国外研究  国外发达国家,如美国、英国、日本等在高等学校专业设置与调整方便研究起步较早,取得了较为丰硕的成果,其研究主要关注专业性质与社会经济结构、培养计划与社会需求、学校自主招生以及政
摘要:学生主动参与对于促进初中体育的教学有效性有着重要意义,要求教师在教学中必须要检出以学生为中心,提高学生的主动参与性。但是,在实际的体育教学中学生主动参与性却普遍不高,主要是由于学生的学习动力不足,教学中学生的主体性地位缺失,以及体育教学评价方式较为单一。要提升初中体育教学中学生的主动参与性要求教师在教学中要坚持创新教学方法,以学生为中心,并不断完善教学评价方式,实现多元化评价  关键词:初中
摘要:随着国际贸易往来的日渐频繁,全球化互联网金融的迅猛发展,会计作为一种商业语言,其运用的国际化程度要求也越来越高。 近年来,我国会计准则的各项调整与国际会计准则趋同的程度逐渐加大,以满足对经济体不断发展的国际化需求。在此大环境下,适应性的开展会计双语教学,使符合社会发展需要,符合教育部培养应用性人才要求的。但在实际开设课程中,依然存在诸多的问题。本文试从学生,教师和教材设备等角度对现存问题进行