摘 要 针对编译原理教学中存在的各种各样的问题,本文从传统和的两种途经分析了编译原理新的教学方案,提出了教学改进的应对措施。
关键字 编译原理 教学 改革
1 引言
机语言之所以能由单一的机器语言到现今的数千种高级语言,就是因为有了编译技术,编译原理技术是计算机中发展的最迅速、最成熟的一个分支,它集中体现了计算机发展成果与精华。
未来计算机工作者,都应该掌握这门基础的专业基础知识,但由于编译原理课程具有很强的理论性和实践性, 编译原理又是计算机专业基础课程,该课程在介绍程序设计语言实现技术的同时,又介绍程序构建的一些相关理论知识,如形式语言、自动机理论、语法制导及代码优化等理论,内容比较抽象难理解,学生在学习过程中,困难重重,作为授课老师,如何让这门课的教学效果得到较大改观是一个需要加以解决主要任务。
2 “编译原理”课程分析
编译原理课程一般利用常用软件如C,Pascal等来构建编译的各部分程序,编译原理的构成包括词法分析,语法分析、语义分析、中间代码生成、代码优化和目标代码生成等。编译原理课程的学习是学生可以对程序设计语言的设计和实现有深刻的理解,还可以有助于学生快速理解定位和解决在程序编译、测试与运行中出现的问题。
3 教学过程存在问题
在教学过程中,学生理解和掌握这门课有一定难度,出现这种情况的原因存在以下几个方面:
(1)编译程序规模大。由于编译原理是一个极其复杂的系统,程序规模大,导致不可能在一节课或一段时间讲述完,只好将它肢解开来一部分一部分地研究,但是这样容易造成知识体系断裂。不可能在短时间让学生对整个编译系统各部分融会贯通,理清各部分逻辑关系的顺序。学生学习过程中应该注意前后联系,切忌由静止的、孤立的观点看待问题。
(2)理论知识抽象。要完整地构造一个编译系统并不是一件容易的事情,它不仅需要具有较完备的软件知识,并需要掌握现有的软件工具的使用,而且更重要的是要有丰富的实践经验,了解
硬件系统结构和操作系统的功能。这些对于刚学完基础知识的学生来讲,简直如同“天书”,理解难度系数相当大。
(3)算法的理解和实现。编译原理这门课包含许多理论知识和算法,这些理论的学习和理解都存在着一定的难度。其中理论知识包括:词法分析器的构造,语法中各种分析器(LR, LL,SLR,LALR等)实现与完成。
4 教学方法改进和实施
针对这种情况,我们分别采取各种不同的策略,策略包括传统教学方法和现代教学理论两方面,我们已经应用这些方法于实际教学中,并已取得良好的教学效果。
4.1 传统教学灵活应用
传统的教学方法是教学成果的精华,但实际的应用难度相当大,如何在现今的教学中灵活应用,也只得我们讨论,常用的方法为:比喻式教学方法、问题式教学方法、范例式教学方法、反思式教学方法。
(1)比喻式教学方法就是用接近我们生活中的例子来近似地表示问题,使问题更容易理解和解决。一般来说大学生的想象能力,逻辑能力比较强,但由于计算机处理问题的过程与日常处理问题有些不同,而且计算机领域中涉及到一些概念比较抽象,所以在讲解时打比方,转换问题的难度,是常采用的方法。
编译原理用来构造计算机语言,那末我们利用的文字构造自然语言的各种方法都可以借鉴过来。例如:由文法产生句子,由句子产生语言,伴随着语义的分析等。在这里:经常用如下文法:
〈句子〉→〈主语〉〈谓语〉
〈主语〉→〈形容词〉〈名词〉
〈谓语〉→〈动词〉〈宾语〉
〈宾语〉→〈形容词〉〈名词〉
〈名词〉→flower|girl
〈动词〉→like
〈形容词〉→yong|beautiful 可以产生的句子为:yong girl like beautiful flower讲解文法的概念,文法的推导,文法的分类以及抽象文法的分析。学生在学习过程会感到与实际联系比较密切。 (2)问题式教学方法可以更好地扩展学生的思维,发挥学生学习的迁移。问题式教学一般分四步:提出问题、引导问题、解决问题、扩充问题。 在分析语法分析器时,首先提出:语法分析的解决问题?常用的语法分析的方法?引导语法分析构造的步骤和过程,在引导过程中,解决语法构造过程的难点,并且扩充问题到,对于同一种语法在用不同的语法分析器中,将产生的结果和基理。语法分析器,让学生在分解问题的过程中得到了理解和应用。 (3)范例式教学方法为在讲解理论的基础上,一定要讲解相关的例题进行加深理解,例题的深度和难度也要结合学生的理解程度和知识点的存在章节,并且由浅入深,循序渐进。 (4)反思式教学方法要求教师从学生的角度来考虑问题,讲解问题。这种方式可以加强学生和老师之间的互动,降低学生学习焦虑的情绪,提高教学的效果。
4.2 在教学平台上新教学方法的构建
(1)构建多媒体环境下的教学环境,利用现代的教学手段,多媒体设施,教案等多种途径,实现课堂时间的有效化,在传统的教学模式下,推导理论需要大量的板书,老师忙于讲,而学生忙于记笔记,一堂课下来,学生累,老师累,结果学生不知道具体内容。借助多媒体,各种算法的推导一目了然,老师的重点放在讲解算法的原理,理顺原理之间的逻辑关系,学生则侧重于理解。具体的做法为提供各类资源库的网上教学习系统。如:CAI软件库、教学资料库、电子图书馆。 (2)采用有效的辅助手段增强课堂教学效果。基于Internet和多媒体技术,辅助手段有各种各样的形式,可以借用有:讨论学习模式、探索学习模式、提供各类资源库的网上辅助教学应用模式。在Internet上实现讨论学习的方式有多种,最简单实用的是利用现有的电子公告牌系统(),这种系统具有用户管理、讨论管理、文章讨论、实时讨论,用户留言、电子信件等诸多功能。编译原理在学习过程,学生问题难点不能一一与老师进行面对面进行,那末通过网络,可以问题公开,老师建立相应的主题,学生可以在自己学习的特定区域发言,学生之间可以进行交流,所有的问题都公开化。 探索学习模式。这种模式一般都是由某些机构设立一些适合特定学生对象的问题,通过Internet向学生发布,要求学生解答;同时提供大量的、与问题相关的信息资源供学生在解决问题过程中查阅。这种模式彻底改变了传统教学过程中学生被动接受的状态,而使学生处于积极主动的地位,因而能有效地激发学生的学习兴趣和创造性。 例如武汉大学的精品课程“编译原理网站”中,搜集了完整的编译原理技术文档、各种程序设计语言的编译器,编译工具等。并且此网站中包括作业、答疑、测试内容,我们推荐给学生作为学习的第二课堂。
5 注重教学效果
课堂教学效果,是指教师和学生在课堂教学活动中所消耗的劳动量与所获得的教学效果之间的利率关系。在单位课堂教学时间内,课堂教学越高,其效果就越好。提高课堂教学效果,是解决有限教学时间与不断扩展的教学内容之间的矛盾的主要方法,也是减轻学生课业负担的根本途径。 目前国际上对教师进行培训模式有六类,知识范式、能力范式、情感范式、“建构论”范式、“批判论”范式和“反思论”范式。其中,“反思论”范式对教师的成长和教学效果提高尤为重要。在教学过程中,教师要培植起“反思”的意识,不断反思自己的教育理念与行为,不断自我调整、自我建构,从而获得不断的专业知识增长。教师还应不断“反思”学生的意见的反馈,学生站在学习者角度,往往能提出教师在教学者角度难以发现的问题,让我们不断发现教学过程中的问题,不断吸收好的思想,才能取得良好的教学效果。
6 结束语
编译原理是机专业的必备基础知识,对培养计算机专业的人才有着重要的作用,探索该课程的教学方法,提高教学质量是从事计算机教育工作者的必须重视的问题,也是一个永远值得探讨的问题。
[1] Alfred V.Aho.Ravi Sethi.Jeffrey D.Ullman.compilers: Principles,Techniques, and Tools[M].Pearson Education出版集团。2002.2 [2] 程虎,[J],浙江:软件学报,1991.02 [3] 王一宾,基于面向对象的编译原理实验的研究[J],安徽:安庆师范
学院学报(版), [4] 刘欣欣,“编译原理”双语教学的实践与探索[J].长春:长春师范
学院学报. [5] 王德清, 现代教育管理技术[M].重庆:重庆大学出版社.2004.3.372~396