《编译原理》课程教学改革探讨

2012-09-27 01:41张鹏戚梅
电子设计工程 2012年5期
关键词:自动机原理理论

张鹏,戚梅

(山东科技大学 信息科学与工程学院,山东 青岛 266590)

《编译原理》课程教学改革探讨

张鹏,戚梅

(山东科技大学 信息科学与工程学院,山东 青岛 266590)

《编译原理》是高校计算机类专业的重要基础和骨干课程,具有较强的理论性和实践性。针对这门课程的特点,探讨了提高教学效果改革的方法,主要提出了4点:打破灌输式教学方式,注重创新意识和能力的培养;实施多样化的教学形式,努力实现以学生发展为本;区分不同教学对象,注重因材施教的培养方式;提倡理论联系实践,培养学生的动手能力。经过实践,较好地调动了学生的学习兴趣,在培养学生的学习能力、实践能力和创造能力、工程意识方面取得了良好的教学效果。

编译原理;教学改革;专业能力;教学实践;教学方式

《编译原理》是高等院校本科计算机专业中一门非常重要的核心课程之一,它对培养学生的抽象思维能力、独立解决复杂问题的能力以及增强理解计算机基础理论的能力等方面起着很大作用[1-3]。Alfred V.Aho曾说过“编写编译器的原理和技术具有十分普遍的意义,以至于在每个计算机科学家的研究生涯中,本书中的原理和技术都会反复用到[1]”。

如何改革编译原理课程教学以提高其教学效果和教学质量,使它跟上新形势下计算机技术的发展,是我们当前急需解决的重要问题。为了使学生系统全面地掌握编译的相关内容,培养学生扎实的计算机理论基础和良好的计算机实际应用能力,掌握课程的重点,融会其难点。

笔者曾于2010年5月参加全国高校教师网络培训中心举办的蒋宗礼教授主讲的《编译原理》精品课程培训,得到蒋教授在各个方面给予的指导,深受启发。笔者在多年的教学实践基础上,对这门课程的教学提出了一系列的改革措施并在教学实践中付诸实施,取得了良好的教学效果。现在将讲授该课程的指导思想和理念的个人心得总结如下,欢迎同行批评指正。

1 改变教学方式,注重创新能力的培养

过去教学中过分强调知识的灌输过程,好像教师不讲学生肯定不会。讲课务必求全,讲得够多,讲得够细,讲得够深,学生的学习目的好像都是为了死板的知识。但事实证明这种教学方式是有问题的,这种教育观念已经妨碍了学生全面而富有个性的发展,窒息了学生的创新意识,创新精神。

教师首先要解放思想打破灌输式教育教学观念,建立注重创新意识和能力教育理念。该课程的主要特点可以归纳为:传授基本方法,培养学科能力;挖掘知识来源,培养创新能力;重视培养系统能力;注重实验教学,培养实践能力。

其次教学内容为次,方法为主,让学生掌握解决问题的方法。这些方法主要有:基于自动机理论的形式化描述方法、程序设计的逐步求精方法、程序设计中自顶向下、自底向上的方法,算法设计中的递归求解方法、计算机科学理论中图形化与数学化结合的方法等。这些方法都是计算机学科最经典、最常用的问题求解与系统设计方法。掌握这些方法后实现从“实例计算”到“类计算”和“模型计算”的跨越[4];从宏观到微观、从微观到宏观,培养系统能力,注重培养学生的创新意识和能力。

例如在讲授“正规式”一节中,在学生掌握基本内容和知识基础以后,可以补充一个思考题,来巩固所学,促进思考,并将以前高级语言的基本知识形式化。

例如:某高级语言可接受的合法文件名为:device:name.extension,其中device:和.extension可以省略。假定device,name和extension都是字母串,长度不限但至少为1,试画出识别文件名的DFA。

此题解题的关键在于理解正规式对于单词形式的表达更为方便,求某类单词的DFA可以先求其正规式,再化成等价的DFAM。求正规式时对于复杂单词可以分部分求解,文件名可以分为3部分,可以分别写出再连接起来,不妨设c为任意字 母 ,Device 的 正 规 式 :cc*|ε,name 的 正 规 式 :cc*,.extension 的正规式:cc*|ε,3 部分连接起来(cc*|ε) cc* (cc*|ε).有了正规式,就可以化为等价的DAFM,这正是图形化与数学化结合,该DFA如图1所示。

图1 文件名的DFAFig.1 DFA of file name

2 多样化的教学形式,以学生发展为本

课程的出发点与落脚点都是面向全体学生的全面发展。为此,教师课堂讲授中应该深挖知识背后的内容,努力再现该课程开创者大师们的问题求解思考过程,引导学生一起思考问题,体验思考和问题求解的乐趣。通过在课堂中适时提出深层问题、扩展问题和提示辅助材料,鼓励和引导学生开阔视野,主动探索,培养他们的学习兴趣、创新意识和创新能力,也减少了学生的死记硬背,便于学生理解。

讲课过程中通过各种方式化解对编译的难点,降低课程知识内容的抽象性,提高了学生的学习兴趣,获得了更好的学习效果。

教学形式上力求多样化,充分利用多媒体教学,讲授内容事先编排和制作,表达手段多样化,能够大幅度提高信息量、改善课堂结构、扩大知识面和避免人为错误。经过多年的教学实践,制作了图文并茂的多媒体课件。相关算法可以用图片,动画等多种形式展现其对数据的处理过程。课程中词法分析,语法分析,代码优化等内容理论比较深奥,算法比较复杂,我们利用动画表现算法对文法和句子处理过程。经过这样处理,能调动学生的观察能力,把教学过程变为学生自己的主动探究性活动,教者轻松,学者有趣,深化了学生对基本知识掌握和对算法的准确理解。

比如,LR分析法是本课程的难点,在讲解分析过程前,先讲解LR分析器模型。一个LR分析器实质上是一个带先进后出存储器(栈)的确定有限状态自动机。把“历史”和“展望”材料综合地抽象成某些“状态”(自动机的状态)。状态栈(先进后出存储器)用来存放状态。栈里的每个状态概括了从分析开始直到某一归约阶段的全部“历史”和“展望”资料。任何时候,栈顶的状态都代表了整个的历史和已推测出的展望。因此,在任何时候都可从栈顶状态得知所想了解的文法的一切信息,而没有必要从底而上翻阅整个栈。LR分析器的每一步工作都是由栈顶状态和现行输入符号所唯一决定的。

3 区分教学对象,注重因材施教

“编译原理”中的一些基本概念、基本理论和基本方法,学生应该掌握,这是本课程的基础。这些基本内容有:文法、语言、正规语言(文法)、上下文无关语言(文法)、二义性、语法树;单词文法描述、词法分析程序、正规式和正规集;LL分析、递归下降分析器、算符优先分析法、LR分析法;语法制导翻译、中间代码生成;符号表、静态存储分配、动态存储分配;寄存器分配、目标代码生成等。

当前多数高校都有计算机类专业,比如计算机科学与技术,软件工程等。不同高校计算机专业学生培养有不同的目的,大体可以分为科学型、工程型、技术型等。不同类型的授课内容、课程难点重点都有不同的侧重点。科学型对理论要求较高,对问题形式化描述、算法讨论,以培养学生的抽象思维能力、独立解决复杂问题的能力为重点。工程型、技术型要求以应用为主,将编译的技术用到实际的编程中。培养解决实际问题的能力。

4 理论联系实践,注重动手能力

实践教育是创新人材培养体系的重要组成部分。实验教育对于提高学生的综合素质、培养学生的科学精神和动手能力有着不可替代的作用。“编译原理”是理论和实践结合密切的计算机课程之一,其内容有较深的理论知识,而相关技术又是这些理论的实践,课堂的理论教学与实验课的实践相结合,培养他们理论结合实际的能力。

在课程讲授中,注意将编译原理的理论与软件开发的实践问题相结合,引导学生在软件实践中运用编译的理论与方法[5]。“编译原理”的相关理论不仅可以应用到编译器的设计中,而且可以用于一般的软件设计:文本编辑器、自动排版、模式识别、程序自动验证、程序自动调试、高级语言之间的转换工具、通信协议转换,交叉编译技术,芯片设计等。

比如对有限自动机的学习,有限自动机是研究自动系统的一种数学模型,作为一种识别装置(模型),可用来识别正则文法所定义的语言。引入有限自动机这个理论,为词法分析程序的自动构造寻找方法和工具。但是有限自动机形式化定义比较抽象,学生理解有困难。为此把确定的有限自动机识别单词的过程用程序体现出来。

DFAM=(K,∑,f,S,Z)的行为的模拟程序如下:

5 结束语

计算机技术发展日新月异,社会对计算机人才的需求随时有变化,面对新形势和新要求,课程教学不应一成不变,应该重新学习课程理论,学习教学策略。近几年的教学实践中,在课程教学内容、教学方法和手段、实践教学体系等方面的改革方面做了积极探索,较好地调动了学生的学习兴趣,在培养学生的学习能力、实践能力和创造能力、工程意识方面做出了有益尝试,取得了良好的教学效果。教学中,只有不断进行教学内容和课程体系的改革,才能培养出符合社会需求的、具有一定创新能力的、高素质的人才。

[1]李建中,姜守旭译.编译原理[M].北京:机械工业出版社,2003.

[2]张素琴,吕映芝.编译原理[M].2版.北京:清华大学出版社,2007.

[3]陈火旺,刘春林,谭庆平.程序设计语言编译原理[M].3版.长沙:国防工业出版社,2000.

[4]蒋宗礼.基本学科能力培养在编译原理课程教学中的实现[J].计算机教育,2007(1):28-30.

JIANG Zong-li.The realization of basic subject ability in the teaching of compile principle[J].Computer Education,2007(1):28-30.

[5]高丽.基于软件项目小组模式的编译原理教学改革探索[J].科技信息,2008,12(2):19-89.

GAO LI.Exploration of teaching innovation of compile principle based on,ode of software project teams[J].Science&Technology Information,2008,12(2):19-89.

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

WANG Ting, LI Jun-meng, ZHOU Hui-ping.The study of cultivating computing thinking in the teaching of compile principle[J].Computer Education,2009(21):11-13.

Study of compiling principles teaching reform

ZHANG Peng,QI Mei
(College of Information Science and Engineering,Shandong University of Science and Technology,Qingdao266590,China)

Compiling Principles is an important professional course in computer major,and it includes strong theory and practicality.Discusses the methods of improving teaching effects of Compiling Principles in four points:Paying more attention to students’ ability cultivating; carrying out various teaching method; practicing principles of individualized instruction;linking up theory with practice.It is proved that the teaching effect and the students’professional ability have been greatly enhanced and improved after teaching practice for several years.

compiling principles; teaching reformation; professional ability; teaching practice; teaching method

TP314

A

1674-6236(2012)05-0008-03

2012-01-01稿件编号:201201001

国家自然科学基金项目(60803032;60970001;91018007);山东科技大学教学研究项目(qx102051)

张 鹏(1973—),男,山东泰安人,博士,副教授。研究方向:Petri网理论与应用、并发模型与算法、工作流、服务计算等。

猜你喜欢
自动机原理理论
坚持理论创新
几类带空转移的n元伪加权自动机的关系*
神秘的混沌理论
理论创新 引领百年
{1,3,5}-{1,4,5}问题与邻居自动机
相关于挠理论的Baer模
了解咳嗽祛痰原理,有效维护健康
一种基于模糊细胞自动机的新型疏散模型
一种基于模糊细胞自动机的新型疏散模型
平均场正倒向随机控制系统的最大值原理