HI,欢迎来到好期刊网,发表咨询:400-888-9411 订阅咨询:400-888-1571证券代码(211862)

编译原理论文集锦9篇

时间:2023-03-21 17:03:49

编译原理论文

编译原理论文范文1

[关键词]编译原理 教学方法 工程化教学

[中图分类号] G642 [文献标识码] A [文章编号] 2095-3437(2015)02-0126-03

一、引言

编译所要完成的主要任务是将高级语言编写的程序翻译成计算机能够理解的机器语言。现代编译程序所要面对的经常是几十万、几百万行的大程序,在编译原理的研究过程中形成了大量的概念、理论和算法,这直接造成了编译原理这门课很难学。现在,编译原理课程是计算机专业的学生公认的本科阶段最难的课程之一,许多学生觉得编译原理难以掌握。本文将工程化的方法引入编译原理的教学过程中,通过一系列措施将编译原理的学习过程简单化、规范化,达到让学生学好编译原理的目标。

二、教学理念

所谓工程化教学是指在教学过程中引入工程的概念,使教学过程有明确的时间安排,有递进的阶段目标,有可以量化的指标,像管理工程项目一样对教学作全程控制。我们要打造工程化的教学过程,通过选择合适的教材、详细考察学生情况、精心组织教学内容、合理安排课后作业、设定逐步提高的开发目标,将学生引入一个可以量化的学习过程中。计算机科学有很强的理论背景,编译原理更以逻辑严密、算法枯燥著称。要求我们在教学过程中做到精简讲解、深入浅出,抓住理论的本质讲清楚。同时,计算机学科强调实践性教学,编译原理课程更是围绕着实际应用而展开的。要求我们在教学过程中激励学生动手,重视实验和课后锻炼,让学生掌握实际运用能力。我们提出了 “精简理论、加强实践”为中心思想的教学理念,掌握理论、动手实践是学好编译原理的不二法门。

三、教材和内容

我们选择的主讲教材是清华大学的张素琴教授主编的《编译原理》,这是目前国内应用最广泛的教材,发行量达到20余万册。我们选择的辅助教材是贝尔实验室的Alfred等编写的《编译原理技术与工具》,这是一本世界著名的编译原理教材,在编译原理领域有很高的声誉。因为封面画了一条龙,所以被大家亲切地称为“龙书”。主讲教材以理论分析为主,内容清晰,逻辑严谨;辅助教材有很好的实践内容,引导学生实际动手设计编译程序。两本教材风格互补,在章节编排上有很好的对应关系,便于在教学中结合使用。下面就以“语法分析”一章为例,介绍一下我们设计的工程化教学过程。教材上“语法分析”一章主要内容包括:LL(1)文法定义、文法判别算法、确定自顶向下分析、递归子程序法等。我们给出了一些补充内容,包括分析典型的源代码、自己开发的Yacc范例、自己开发的表达式语法分析程序等部分。通过这些案例的分析,让学生在理论学习的基础上学习如何将理论应用到实际开发,并熟悉流行的编译辅助工具软件的使用。

四、学生情况分析

编译原理这门课是为计算机专业本科三、四年级的学生开设的。学生在学习编译原理之前已经学过多种编程语言,如VB、VC、Java、Delphi、Html。但是一个普遍的情况是“多数学生没有认真思考过,编译程序的原理和开发方法”。学生不知道这些编译软件是如何设计出来的,更不知道不同编译程序背后的理论依据。学生会感觉到编译原理很神秘。而且编译原理“难”声在外,一些学生对编译原理有畏惧心理。这是学生学习《编译原理》的心理难点。我们要解决的问题是:如何为学生树立学好编译原理的信心?《编译原理》这门课程比较独立,理论自成体系,其他先修课程很少涉及编译方面的内容。教材内容定义多,概念抽象,形式化的描述难以理解;算法多,步骤复杂,计算量大,学生很容易陷入细节问题不能自拔,产生困难和厌学心理。这些情况造成学生不容易接受编译原理内容,上课时容易产生惰性心理。这是学生学习《编译原理》的理论难点。我们要解决的问题是:如何让学生把理论学明白、会运用?《编译原理》的理论学习尚且不易,设计编译程序更是一项非常复杂的工程,涉及多方面内容,学生的编程经验不足以开发一个简单的编译程序,经常会感觉不知从何入手。这是学生学习《编译原理》的技术难点。我们要解决的问题是:如何引导学生动手实践,给同学们找到一个很好的切入点?同时,我们观察到,学生主观上又想学好编译原理。因为著名的编译高手设计了学生每天使用的编译程序,比如设计了C语言的Ritchie &Thompson、设计了C++语言的Bjarne Stroustrup、设计了Java语言的James Gosling、设计了C#语言的Anders Hejlsberg等等,这些传奇式的编译高手受到学生们的广泛推崇。学生耳闻目染知道编译原理的重要性,对编译程序的开发感到好奇。这些都是我们引导学生学习的有利因素。在教学过程的设计当中,我们针对这些教学难点安排教学内容和教学方法,注意帮助学生克服困难,培养学生的学习兴趣。

五、教学目标和重点

结合这一章的内容,我们制定了四个递进的教学目标和三个教学重点。教学目标包括对教材内容的掌握和学习补充延伸的内容。第一,掌握教材上的基本原理。包括文法的FIRST集、FOLLOW集和SELECT集的定义和计算方法、LL(1)文法的定义和判别算法、确定自顶向下分析、递归子程序法等内容。这些基本理论学生必须要掌握。第二,学习使用语法分析自动生成工具。为学生介绍现在被广泛使用的工具软件Yacc。通过我们自己编写的Yacc程序范例,让学生掌握Yacc的结构和用法。第三,掌握经典的语法分析的源代码。通过分析PL / 0语言的语法分析源代码,让学生了解语法分析的经典实现。第四,引导学生动手实现语法分析器。引导学生对Yacc代码和PL / 0语法分析代码作个性化的修改和功能添加。通过这四个逐步深入的教学目标,引导学生不断深化学习。教学重点包括了这一章的三个重要的定义和理论。第一,LL(1)文法的定义。这个定义包括First集、Follow集和Select集三个前导定义,每个定义都是一段形式化的描述,要求讲课时要讲清楚形式化定义的本质。第二,LL(1)文法的判别算法。算法包括五个步骤:1.求出能推出ε的非终结符;2.计算First集;3.计算Follow集;4.计算Select集;5.判定是否是LL(1)文法。其中每个步骤又是一个独立的算法。整个算法比较冗长,教材上用了六页描述该算法。我们要用特别的方法让学生学习和掌握。第三,语法分析的递归子程序法。递归子程序法的思想是对LL(1)文法中每个非终结符编写一个递归过程,识别由该非终结符推出的符号串。PL / 0语法分析模块就是采用递归子程序算法实现的。在分析PL / 0语法分析模块的基础上,我们还引导学生动手开发自己的语法分析程序。

六、教学过程

下面详细介绍教学过程的安排,共分为六个步骤。第一步:提出问题,引发学生去思考。编译的任务是将高级语言编写的程序翻译成计算机能够直接理解的机器语言,这个翻译过程不是一步完成的。编译程序在进行真正的翻译和生成目标代码之前,首先要从结构上把握源程序。语法分析的任务就是从结构上分析程序,保证源程序语法结构正确并分析得到程序的各个语法成分。让我们考虑一个简单的例子,老师是如何判断小学生所造的句子语法结构上是否正确?比如,“我是学生”,我们说这个句子是语法结构正确的。那是因为我们可以将这个句子分为三部分,“我____是____学生”,每一部分正确的对应了“主语____谓语____宾语”三种语法成分,所以我们说这个句子是语法正确的。那么,编译程序是如何对源程序做语法分析的呢?比如,“if i

接下来我们以语法分析为例,介绍一下如何引导学生动手实践语法分析理论。第一,一步一步教学生如何用Yacc创建语法分析项目,详细介绍每个步骤的含义。第二,一步一步教学生配置VC环境用于语法分析项目的编译,详细每个环境参数的作用。学生在实践的时候遇到的最主要的困难就是如何使用工具软件,我们通过详细的讲解帮助学生迈出语法分析的第一步。第三,用简单的例子讲解Yacc的结构和用法,让学生体会语法分析其实不神秘。第四,把我们自己写的文法范例在课堂上和同学们一起编写、调试、运行,实时展现不同文法分析的结果。第五,将我们自己用C语言开发的表达式语法分析程序作为补充练习,让学生去修改、添加功能,体会语法分析的思路。整个过程充分考虑了学生的能力培养,难度逐步加大,阶段目标明确,便于在教学过程中实施。

七、教学效果

在实际教学过程中,编译原理的工程化教学方法取得了较好的教学效果,学生保持较高的学习积极性,学生评教一直保持较高的分数。在课堂上,学生能够积极的参与教学过程,把握知识脉络并掌握知识点;在课余时间里,学生能够较好的完成作业并进行探索和学习。通过系统的学习编译原理,学生对软件开发有了深入认识,了解了程序优化和并行计算的方法和重要性,为编写高效、高质量的代码打下了基础。此外,本文第一作者以“编译原理的工程化教学”为主题参加广西师范大学第三届“青年教师说课比赛”,获得了理科组第一名的好成绩;并指导本科生以“基于泛型编程的编译器研究”为题目申请并获得广西师范大学创新性实验基金资助。

八、结语

在整个教学过程中,我们首先帮助学生端正学习态度,破除《编译原理》难学的迷信。然后采用精简讲解、小题多练等方式,让学生体会理论并不深奥。在理论学习的基础上,引导学生动手实践,设计由易到难的实践项目,在此过程中打造属于同学们自己的编译程序,培养学习成就感。最终达到懂得理论、学会设计、学好《编译原理》这个总目标。作为教学的巩固与延伸措施,我们会引导同学做更多的实践。比如C语言的语法分析、SQL语言的语法分析、尝试使用C++的Boost.Spirit开发包等等。同时,和学生一起参与开发过程,用电话、Emai等方式与同学保持密切联系,及时解答同学们学习过程中遇到的问题。不但要让学生学懂理论、学会运用,更要让学生记得牢固。

我们将整个教学过程看作是一个工程项目,将工程中目标明确、量化管理的特点引入到编译原理的教学过程中,收到了比较好的教学效果,也受到了学生的欢迎。

[ 参 考 文 献 ]

编译原理论文范文2

新闻翻译是一种目的性的行为。由于各民族间语言、风俗、和文化等差异性的不可避免性,源语言文本很难被译者按照字面的意思翻译。因此,完全地重视源语言新闻有时并不能达到理想的信息传播效果,那么译者需要发挥其主观能动性,采取必要的翻译策略,以达到更有效的信息传播的目的。其次,新闻翻译要求目标语言读者能够理解译文,译文在其介入的交际环境和文化中应有一定的意义。新闻译者需要采取目标语言及目标语言文化定位的翻译策略,使得译文在其介入的的交际环境和文化中有一定的意义。因而,以德国功能派翻译大师H.J.弗米尔(H.J. Vermeer)提出的以目的论为指导理论对新闻翻译具有重要的指导意义。

1 目的论概述

德国功能派大师H.J.弗米尔在二十世纪七十年代摆脱了当时盛行的翻译对等理论的束缚,提出了“目的论”(Skopos theory),为译者在翻译实践中灵活运用翻译策略和方法提供了理论基础,对于有目的的交际行为的新闻翻译具有十分重要的指导意义。目的论所注重的并非译文与原文的对等性,而是译文的可读性,这对于新闻翻译而言,指导意义可见一斑。

目的论强调翻译应遵循三大法则:(1)目的法则(Skopos rule)目的法则是翻译目的论的最高法则,整个翻译行为的目的是决定新闻翻译过程的首要法则。因而,在翻译过程中,翻译策略和翻译方法的选择,都是由翻译目的所决定的。(2)连贯性法则(Coherence rule)连贯性法则要求译文必须符合语内连贯的标准,即译文具有可读性和可接受性,能够使接受者理解并在目标语接受者的文化及使用译文的交际语境中有意义。(3)忠实性法则(Fidelity rule)忠实性法则要求原文与译文之间应该存在语际连贯一致。这相当于其他翻译理论所谓的忠实于原文,但与原文忠实的程度和形式取决于译文的目的和译者对原文的理解。

2 新闻编译的概述

新闻因其本身具备其及时性、重要性、显著性、地方性以及趣味性的特征,因而要求在跨文化新闻翻译中既能保持这些特征,又能准确地表达源语言新闻的意思。新闻编译是通过翻译人员的加工,将源语言新闻通过各种翻译策略和翻译方法的的运用转化为目标语言新闻。编译类似于翻译,都是一个转换过程,即把源语言的信息转换成目的语中意义对应的信息。翻译要求准确和忠实,而新闻编译则不同,它要求译者在一定的目的性的前提下对源语言新闻进行一定的加工,如背景知识的补充、相关新闻的政治性不利言辞的删减、修正等。

3 目的论指导下的英语新闻编译

目的论以目的为总的原则,在新闻编译过程中,它需要新闻编译者通过采取合理有效的新闻编译方法和策略对源语言新闻进行必要的改动,使源语言新闻信息能让目标语接受者正确地理解和接受,这样才能达到有效传播新闻信息的目的。

3.1 缩译法

在新闻编译中缩译法是行之有效的编译方法,它在不改变源语言新闻所传达的中心信息的同时既能节省目标语接受者阅读时间也能准确地表达源语言新闻的意思。

例:Emails and text messages could be read on contact lenses linked to the internet, a new invention.

Researchers constructed a computerized contact lens and demonstrated its safety by testing it on live eyes, and there were no signs of adverse side effects.

The contact lens created by researchers at the University of Washington and Aalto University, Finland, consists of an antenna to harvest power sent out by an external source, as well as an integrated circuit to store this energy and transfer it to a transparent sapphire chip containing a single blue LED.

One major problem the researchers had to overcome was the fact that the human eye, with its minimum focal distance of several centimeters, cannot resolve objects on a contact lens. Any information projected on to the lens would probably appear blurry.

科学家发明隐形眼镜可直接查看邮件短信

研究人员制造了一种计算机化的隐形眼镜,并宣称已经通过肉眼使用的安全测试,没有产生不良副作用的迹象。这种隐形眼镜是由来自华盛顿大学和芬兰阿尔托大学的研究人员共同创造的,其组成部分包括一根用来接收外界信息来源发出的能量的天线,以及一个集成电路,这一电路会把接收到的能量储存起来,并将其转移到一个透明的包含单个蓝色二极管的宝石蓝芯片上。

显而易见,在此新闻编译中,目标语文本较源语言新闻更加短小精悍,因为源语言文本的中的最后一段与标题所表达的意思没有关联,而新闻报道往往由于版面空间的有限的实际情况需要对长篇的新闻报道采取必要的删减,因而缩译法在新闻编译中发挥重要的作用。

3.2 增补法

在新闻编译中,对源语言新闻词语的直接翻译有时往往不能准确地表达所要传达的信息,在此情况下需要译者采取必要的增补方法对源语言新闻进行合理的编译,即编译时按意义上和句法上需要增加一些词来更加忠实通顺地表达原文的思想内容。

例:“铁饭碗”如今已被一个新出现的词“跳槽”代替。

The phrase “iron-rice-bowl”, which refers to the job-for-life system, has been replaced by a new term, Tiao Cao, meaning“to seek better troughs.”

对于中国人而言,“铁饭碗”和“跳槽”所表达的意思是众所周知的,然而对于外国人而言,却是难以理解和领会的,因此在编译中,为了使得译文能准确地表达原文的意思,常常必须增加一些原文字面上没有而在上下文种包含内容的词语。

3.3 改编法

新闻编译是一种有目的性的交际行为,它需要译者在新闻编译中进行有目的的词汇或句子上的合理翻译,尤其是在政治新闻中,对源语言新闻中被曲解的词汇或句子进行正确的修正是十分必要的,这样才能使源语言新闻在目标语受众中得到有效的信息传播。

例:China has considered Taiwan a renegade province since communist forces drove nationalists from the mainland in 1949, and has repeatedly threatened to use military power against the island if it declares independence

中国坚持台湾自1949年以来一直是其不可分割的一个省,并重申如果台湾宣称其独立将采取武力行动。

在此例句中,源语言新闻的读者认为中国把台湾理解为“叛乱省”,这当然是有悖于中国人民大众的意思的,如果直(下转第158页)(上接第145页)接翻译成“叛乱省”势必会影响与台湾人民之间的感情,也是与事实不相符合的,因而,译者巧妙地运用了改编法,把“叛乱省”翻译成“不可分割的一个省”,这样既符合事实也加深了与台湾同胞的感情。

编译原理论文范文3

[关键词]西方文论 翻译 新文学 现代出版

[中图分类号]G239 [文献标识码] A [文章编号] 1009-5853(2013) 02-0107-04

晚清以来的西方文化典籍的汉译工作到了民国时期进一步推进,一系列著作相继得到翻译与出版。西方文化典籍的翻译与出版不仅开启了中国文化的现代化进程,同时引发了传统与现代、“西方化”与“本土化”的论争。就中国现代文论的现状来看,“西方化”与“本土化”的论争演化为“西方文论中国化”与“中国文论西方化”的命题[1]。要解开这一命题的症结,我们还需要作现象学式的“还原”,通过重返历史,追根溯源,从而还原西方文论最初在中国翻译与出版的初始原貌。

1 西方文论的东渐历程

民国期间,西方文学作品包括小说、戏剧与诗歌继续得到翻译出版,为新文学的创作与生产提供了某种借鉴。然而文学创作话语规则的缺席却让新文学的创作缺乏理论的指引。继文学作品翻译出版之后,西方文艺理论的系统介绍已是大势所趋。地理学意义上的西方毕竟相隔遥远,而文化意义上的“西方”却又充满太多的异质性,因此西化成功的日本也就成为新文学家们的首选;毕竟二者在文化上还存在着很多的渊源与姻亲关系。由此西方文论在中国翻译的历程,最初经由日本这一中介得以传播。正是通过日本文论的翻译,欧美文论与俄苏文论相继地参与着新文学话语规则的建构。

据不完全统计,民国建立前的十五年间,共有956部日文书被译成汉文;至民国成立后十五年间,日译汉的著作有1759部。而其中,通过日文翻译的文论大约50部左右[2]。民国期间对于日本文艺理论作品的引进,较为人熟知的是章锡琛对日本文论家本间久雄的《新文学概论》的翻译。1920年章锡琛正式在《新中国》杂志上连载本间久雄的《新文学概论》部分内容,后因杂志停办而搁浅。次年他又在《文学》杂志上重新翻译与发表,后于1925年由商务印书馆结集出版。而在这年7月,汪馥泉也将翻译的《新文学概论》交由上海书店付梓,后又于1930年4月在上海亚东图书馆再版。基于本间久雄对本书的二次改编,章锡琛又于1930年对之作了重译,并于当年交由开明书店出版。除此之外,本间久雄的《欧洲近代文艺思潮论》也由沈端先于1928年翻译出版,其所著的《文学研究法》也由李自珍翻译,于1932年由星云堂书店出版。

在通过日文翻译的文论中,除了本间久雄的《新文学概论》在当时影响较大外,还有厨川百村的著作。厨川百村的《苦闷的象征》,先是鲁迅于1924年和1928年分别交由新潮社与北新书局出版。丰子恺也于1925年翻译了该著作,由商务印书馆出版。厨川百村的另一本著作《出了象牙之塔》,由鲁迅翻译,分别于1925年与1928年由未名社与北新书局出版;由绿蕉、大杰翻译的《走向十字街头》,分别于1928年与1932年由启智书局与新文艺书店出版。

除这二人的著作之外,翻译过来的日本文论还包括青野季吉的《新兴艺术概论》(冯译,1930年现代书局)、芥川龙之介的《文艺一般论》(高明译,1933年光华书局)、藏原惟人的《新写实主义论文集》(吴之本译,1930年现代书局)、森山启的《社会主义的现实主义》(林焕平译,1940年希望书局)、夏目漱石的《文学论》(张我军译,1931年神州国光社)、滕森成吉的《新兴文艺论》(张资平译,1928年联合书店)、小泉八云的《文学讲义》(惟夫编译,1931年联华书店)、狄原朔太郎的《诗底原理》(孙工译,1933年中华书局)等,在当时也产生了一定的影响。

日本文艺理论的翻译出版为新文学的创作与教学提供了一定话语规则的支持。比如鲁迅在教导青年学生“研究文学”的时候,认为应该从本间久雄的《新文学概论》和厨川百村的《苦闷的象征》着手[3]。然而仔细阅读当时翻译出版的日本文艺理论专著,我们发现,一方面日本文艺理论专著多为西方文艺理论专著的改写,另一方面日本文艺理论专著的翻译出版也呈现出明显的欧美化倾向和俄苏化色彩。

其实欧美文艺理论的翻译,早在民国之前就已经开始。1905年,《新民丛报》第3年第22号起连载蒋智由翻译的法国学者维朗的《维朗氏诗学论》,标志着中国开始系统翻译西方文艺理论。随后黄远生、鲁迅、周作人、王国维等人开始碎片式引用或化用欧美的文艺理论作品来阐释中国文学。然而国人对欧美文艺理论的全面了解,实始于本间久雄的《新文学概论》。正如本间久雄自己所言,“文学通论”部分参照了“Hunt的Literature, Its Principle and Problems; Winchester的Some Principles of Literary Criticism; Mackenzie的the Evolution of Literature”等,而“文学批评论”则参考了“Gayley and Scott的 An Introduction to Methods and Materials of Literary Criticism,Saintsbury的 History of Criticism以及Moulton的the Modern Study of Literature”[4]。正是这一系列书目,日后几乎成为中国人学习西方文艺理论的必读书目,同时成为当时学者研究新文学,甚至旧文学的理论工具。1923年西谛发表的《关于文学原理的重要书籍介绍》一文中,第一次系统地介绍了这些文艺理论书目[5]。而1933年郁达夫在《青年界》第4期发表《英文文艺批评举要》一文中,则再次列举了类似书目。

为了正面直接阅读研究欧美文艺理论,国人开始直接地从英文或其他语言中翻译欧美文艺理论。在章锡琛翻译《新文学概论》的第二年,景昌极与钱新便在《文哲周报》上翻译发表了温切斯特的《文学评价之原理》,后于1927年由商务印书馆印刷出版。1926年傅东华在《小说月报》17卷1―8期上翻译发表莫尔顿的《文学之近代研究》。第二年又在《小说月报》第18卷上发表莫尔顿的《文学进化论》。除此之外,一系列的欧美文艺理论得到翻译出版。除了以上两部作品之外,傅东华还先后翻译了勃利司・藩莱的《诗之研究》(1923),蒲克的《社会的文学批评论》(1926),琉威松的《近世文学批评》(1928),卡尔佛登的《文学之社会学的批评》(1930),亨特的《文学概论》(1935)。除了傅东华之外,在20世纪二三十年代翻译的欧美文艺理论还包括多人于1929年翻译的瑞恰兹所著《科学与诗》,宋桂煌于1930年翻译韩德生的《文学研究法》与《小说的研究》等。据笔者大致计算,民国期间翻译的欧美文艺理论(俄苏文论除外)也在50部左右。总体来看,欧美文艺理论著作的直接翻译让国人对外国文学作品有了更为深刻的认识,另一方面欧美文艺理论的输入也直接地影响着当时中国文学话语规则的建构与重构。正是在欧美文艺理论的基础上,中国文学研究不仅有了全新的理论基础,而且改变着本土的文学理论重构。比如陈仲凡、郭绍虞等人便是在温切斯特、圣茨伯里、亨特等人建构的体系上,来重新思考中国古代文艺理论体系的[6]。

随着20世纪二三十年代日本左翼作家的不断壮大,俄苏文艺理论传入日本,在日本出现了许多民主主义与社会主义的文艺理论,文艺与现实、文艺与革命、文艺的阶级性等问题成为探讨的重心。而此时输入的日本左翼文学理论便即时地迎合了中国当时的社会政治环境。于是从日本留学归来的鲁迅、周作人、郭沫若、张资平等作家便开始俄苏文论的译介。鲁迅最初从日本翻译俄国文学的时候开始介绍俄国文艺理论。他于1929年便翻译了卢那察尔斯基的《文艺与批评》,第二年又翻译了普列汉诺夫的《艺术论》。值得注意的是两部文艺理论著作,甚至包括以前的《壁下译丛》等都是从日文转译而来。后来随着三四十年代政治运动的风起云涌,俄国文艺理论的革命性与阶级性很好地吻合了其时的政治环境与社会环境,于是在20世纪三四十年代俄国文艺理论便取代了20世纪二十年代欧美文论的主导地位。这一时期包括俄国民主主义文艺理论家、马克思恩格斯列宁的文艺理论以及其他的社会主义文艺理论都在这一时期得到翻译传播。据本人粗略统计,此时翻译过来的俄国文艺理论著作也多达50种。

2 西方文论的翻译:“西方化”还是“本土化”

自晚清开始输入西学以来,对于西方著作的译介一直都存在着“西方化”与“本土化”的问题。即使是最初翻译的一些自然科学,我们的知识分子也在不断地印证着“东学西渐”的痕迹[7]。如果西方文学与中国文学仅就具体的文学作品而言,只要不是变异很大,尽管彼此之间有巨大的文化差异,但本土的中国读者还是能够阅读理解的。作为西方文学的话语规则而言,因其理论的抽象性,以及与本土文学的完全异质性,不管是在翻译过程中,还是读者的阅读接受中,都横亘着巨大的文化鸿沟。因此就翻译效果而论,到底是通过直译而达到完全的西方化还是通过转译、改译或者编译而部分本土化,这是当时西方文论在翻译过程中所不可避免的二难选择。

就前面所描述的西方文论在民国期间的翻译出版作品来看,大致出现了这样几个特点。

一是因交流中转及语言障碍而导致的文本的转译。尽管民国时期输入了很多日本文艺理论著作,但囿于日本本民族文学的需要,绝大多数文艺理论著作是对欧美或俄苏文艺理论的借鉴与改编。比如在当时中国影响最大的两本文艺理论专著《新文学概论》与《苦闷的象征》便是如此。当被加工过的日本文艺理论翻译成中文后经历了第三次转译,由此国人对西方文艺理论的理解就必然出现误读与不适应的情形。而这一点已经被当时的翻译家发现。翻译的尴尬,促使更多的有识之士直接从西方文论原著进行翻译。然而很遗憾的是,一方面囿于当时文化交流的匮乏,另一方面囿于语言的障碍,即使是摆脱了日文的限制,却又掉进了英文的转译之中,因为这两种语言在当时最为流行。由此民国时期的西方文艺理论的翻译必然地会出现很多的转译。即使像傅东华、曹靖华这样的专职翻译家,有的时候也得从英文版去翻译法国的文艺理论及俄国的文艺理论。

二是翻译过程中出现的节译与改译问题。因东西方文化的异质性,文本翻译过程中必然出现“归化”与“顺化”的问题。对于当时新兴的西方文艺理论,国人最初感到的是与传统本土文论之间极大的异质性。因此很多翻译家在翻译的过程中必然会采用节译与改译,对原著中的某些内容作相应的改编。比如章锡琛深感国人对日本文学的不了解,因此在翻译本间久雄的《新文学概论》与《文学概论》的过程中,往往将过多的日本文学典故与例子删掉。而这一点景昌极在翻译温彻斯特的《文学评论之原理》的时候也同样涉及这一问题。因东西文学的差异,在翻译过程中“取诸本国文学以代之。其急切不能得者,则译以明畅之词。或竟以散文译诗句,以求达意”。因此“原著中典例,每于译文中易以本国之类似者……盖因国人于西方学术掌故,所知甚罕。故易以本国材料,为人人所共晓者”[8]。

三是很多西方文论的翻译者采用了编译或辑译的形式。如当时非常有名的东方杂志社为庆祝建刊20周年,将以前在该刊发表的一系列西方文艺理论,以《东方文库》丛书的形式由商务印书馆结集出版。其中包括《写实主义与浪漫主义》《近代文学与社会改造》《文艺批评与批评家》等。这些编译作品大多由单篇论文组成,来源不同,风格多样,节译与改译并存。对于俄苏文论,因其强烈的意识形态色彩与制度化特征,很多俄苏文论,尤其是苏联文艺理论多采用集体编译的形式出版。1935年出版的苏联文学顾问会编著的《给初学写作者的一封信》,1940年出版的苏联康敏学院文艺研究所编的《科学的艺术论》等,均是集体编译。这种集体编译的形式对于后来新中国的文学撰写出版产生了深刻的影响。

3 中国现代出版业与西方文论

游走在商业与人文两端的中国现代出版业,既为中国现代文学提供生存空间,同样也生长出新文学的话语规则。然而在商业与人文、生产与消费、阅读与接受的两端,西方文论的翻译与出版,并不像新文学那样有着明显的利益制衡。因为作为新文学的小说、诗歌,一方面作为精英阶层引领社会文化方向的文化话语,另一方面也同样为大众提供难得的文化产品以资消费,甚至是娱乐。但作为文学生产与写作而存在的文学话语规则,因其理论上的形而上学性,势必很难吸引大众的阅读兴趣,最终在普通读者的文学消费层出现真空。西方文论最终还是在中国得以大量翻译出版,有的甚至一版再版。原因何在?据笔者看来,原因有以下两个方面。

一是新文学杂志与相关出版社出于文学创作与研究的需要,翻译出版西方文艺理论,成为必然的历史选择。这些杂志社与出版社一方面为新文学作家的文学生产、写作与发表提供阵地,另一方面也通过输入国外文艺理论为新文学理论建设提供话语支持。纵观整个民国时期的新文学流派的作家们,无论是文学研究会、创造社还是“左联”的作家们,他们一方面本人亲自创办杂志社或出版社,另一方面又供职于这些杂志社与出版社。他们一方面利用自身的身份优势,大量发表新文学作品,另一方面也大量翻译国外文学作品以资借鉴。如章锡琛翻译本间久雄的《新文学概论》,最先发表在文学研究会的固定刊物《文学》上。而傅东华翻译的蒲克的《社会的文学批评》、莫尔顿的《文学进化论》《文学之近代研究》等则发表在新文学骨干成员茅盾主编的《小说月报》之上。又比如“左联”的众多刊物后来成为俄苏文论的发表阵地。现代派作家施蜇存所办的水沫书店更是出版了《科学的艺术丛书》,系统地介绍了当时的马列文论以及俄苏文论。

二是众多专职翻译家与杂志社、出版社的结盟。自1905年废除科举制以来,投身写作与翻译成为众多知识分子的生存选择。一方面他们通过文学生产掌握着新文学的话语权,另一方面却又不得不依赖于杂志社与出版社而获得生存资本。比如最早系统翻译西方文艺理论的章锡琛,一方面凭借其熟练的日语翻译了好几本日本的文学理论著作,另一方面更是凭借其掌握的媒介,将其翻译的文论发表出版。又如傅东华的经历亦是如此。在中学毕业后,凭借良好的外语水平,最先供职于中华书局作专职翻译员,后来又去商务印书馆专门从事翻译工作。尽管最后任职于复旦大学,但其一生的经历都与出版活动难分难舍,不仅翻译出版了众多的西方文学作品,而且翻译了众多的西方文学理论。正是这些同时拥有外语背景与留学经历的现代知识分子积极加盟出版事业,为西方文艺理论的翻译出版提供了便利。

注 释

[1]曹顺庆,谭佳.重建中国文论的又一有效途径:西方文论的中国化[J].外国文学研究,2004(5)

[2]北京图书馆编.民国时期总书目(1911―1949)(文学理论・世界文学・中国文学)[M].北京:书目文献出版社,1992

[3]鲁迅.而已集・读书杂谈[M]//鲁迅全集(第3 卷).北京:人民文学出版社,2005

[4][日]本间久雄著;章锡琛译.新文学概论[M].上海:商务印书馆,1925

[5]西谛.关于文学原理的重要书籍介绍[J].小说月报,1923,14(1)

[6]陈钟凡.中国文学批评史[M].上海:中华书局,1927

[7]姚振华.东学西渐[J].东方杂志,1904(6)

编译原理论文范文4

关键词 编译原理 任务驱动 教学模式 建构主义

中图分类号:G424 文献标识码:A

Application of Task-driven Model in Compiler Construction Principle Teaching

Abstract In this paper, analysis the problems in the compiler construction principle teaching process for undergraduates. Based on the discussion of task-driven approach, an effective teaching solution for compiler construction principle driven by task has been researched. Questions which appeared in implementation are analyzed. The work in this paper has given a valid method which can enhance flexibleness of compiler construction principle teaching.

Key words compiler construction principle; task-driven; teaching model; constructivism

0 引言

编译原理是计算机专业的一门重要专业基础课程,它的核心是研究计算机语言编译程序构造的基本理论和基本方法,通过该课程的学习有效帮助学生快速掌握计算机语言工具,深入理解计算机编程语言,并进一步增强学生软件系统设计与开发的能力。

本文以学生的课堂学习为出发点,以避免编译原理课程教学的复杂性和抽象性为直接目的,以提高学生学习编译原理课程的学习兴趣,形成良好学习氛围,培养学生的创新能力和实践能力为最终目的,研究以任务驱动为核心的编译原理课程教学模式,探讨教学实现方法,为编译原理课程教学提供有益的参考。

1 任务驱动教学模型原理研究

“任务驱动”起源于教育学领域的建构主义理论,它要求教师在教学过程中引导学生从实际问题出发,通过提出问题、分析研究问题、探索解决问题的方法进行学习。强调在教师教学的过程中,以一个或者多个具体任务为核心,学生通过对所提出的任务进行适当的分析、讨论,明确当前问题所涉及的新旧知识。并在教师的带领下,以一个共同的任务为驱动力,使学生在寻求问题答案的动机的驱动下,使学生能够进行自主探索和互动协作的学习,对课堂教学资源积极主动地实践应用,引导学生产生一种自主自愿学习的兴趣。通过帮助学生完成任务,达到向学生讲解教学内容并促进学生深入理解专业知识、学习专业技能的目的。

任务驱动教学的方法打破了常规的教学模式,它始终坚持“学习是学习者主动建构知识和经验的过程”的理论基础。采用分化知识结构、建立知识任务的教学模式,驱动学生建立明确的任务目标,自发主动地去学习新的知识,获取新的信息,并在完成任务后将零散的知识点集中串联,形成系统的知识理论。整个过程以任务为主线,以教师为主导,以学生为主体进行教学,使学生在原有课程理论知识以及实践经验的基础上对新的教学内容进行知识的重新建构,当新的知识与学生原有知识以及经验发生矛盾的时候,学生能够积极主动地对原有经验知识进行改造和重组,并通过自我调整使自身的知识水平发生新的、更高层次的转变。从而从整体上提高学生课堂学习过程中的针对性、目的性以及参与性,着力培养学生的自学能力、研究和分析问题的能力、动手实践的能力、相互协作解决问题的能力,同时也增强了教师教学过程中与学生的互动性和协作,形成良好的教学气氛。

2 编译原理教学中任务驱动模型的实现

本科编译原理教学的主要内容是计算机编译程序构造的基本原理、编译程序的基本设计方法以及编译程序的主要实现技术,相关知识存在抽象性强和复杂性高的问题。采用任务驱动教学模型开展本课程的教学,通过建立具体的任务实例,融知识于任务之中,通过相互协作、师生交流共同完成任务,可以规避枯燥的课堂教学,提高学生学习兴趣,建立教师教学与学生学习之间的和谐。

编译原理课程教学中任务驱动模型的应用和实现需要师生的共同协作与努力,以学生学习为核心,以任务为主线,教师的具体工作贯穿始终。整个教学过程的实现可以分为五个部分:

(1)任务的设计过程。任务的设计由教师紧密结合编译原理各部分的知识结构以及本班学生的共同特点设计完成。在编译原理课程教学过程中,任务的设计非常关键,是所有教学工作展开的基础,任务设计的好坏直接影响课堂教学效果。在任务设计过程中,教师不能孤立地设计任务,而应该和备课紧密结合,在认真钻研和分析编译原理大纲要求的基础上设计任务。从多角度考虑问题,设计任务既要激发学生兴趣、引起学生求知欲,又能使学生快速发现问题。

(2)任务的发起过程。任务的发起由教师发起,在发起过程中重在激发学生的兴趣。在编译原理教学过程中,任务的发起应该充分利用学生已有知识。比如可以利用“离散数学”、“数据结构”以及“计算机组成原理”等多门先修课程,让学生意识到编译原理能够解决其它课程具有相似性,并且能够解决其它课程所不能解决的问题,充分激发学生解决问题的主动性。

(3)任务的实施过程。任务的实施由教师和学生共同完成,教师起引导作用,掌控任务完成的方向和进度,根据任务大小的不同学生可以单独完成也可以分组完成,任务实施中重在教师与学生之间的交流协作。教师在编译原理任务驱动教学实施过程中要紧密结合知识体系的内部结构,启发学生掌握编译程序设计过程中各个部分的内在联系和规律,引导学生积极讨论,将编译原理课程中的抽象概念引导出来。鼓励学生相互协作、相互讨论完成任务,使学生在激烈的讨论以及与教师友好交流的过程中理解知识、掌握知识,提升教学效果。

(4)任务的验证过程。任务的验证可以结合例题和习题进行展开,既包含对任务中所涉及的编译原理基本理论的验证,也是对课堂教学效果的检验和验证。

(5)任务的总结过程。任务的总结起到对知识进行归纳整理的作用,既帮助学生梳理知识点,又启发学生对下一部分知识学习的兴趣,增强学生学习的信心。在总结过程中还要启发学生将编译原理中的算法、思想和实现技术应用于日常软件的设计实现中,提高学生的综合能力。

在编译原理任务驱动教学实施过程中,采用怎样的措施趋利避害,也是我们重点考虑的问题。在教学的具体实践中,还应该注意以下问题:编译原理课程的教师在任务设计时要使学生能完成、完成好,注意循环往复,不能影响学生的积极性;要让学生和教师互动起来,最大程度激发学生的潜能;在引导学生完成任务时要注意分层次、分目标地进行引导和启发,将枯燥转化为生动有趣,使学生乐于接受,形成编译原理学习的良性循环。

3 结束语

编译原理课程的任务驱动教学模式符合教育学中建构主义教学理论的基本要求。在教学过程中坚持以学生学习为核心,以任务为主线,以教师为主导的教学理念,教师的教学和学生的学习均紧密围绕任务的完成展开,教师的教学思路明确,学生的学习目标也更加具体化。能够有效摆脱编译原理课程传统的教学模式,调动学生学习的积极性、主动性,建立教师和学生之间的良好关系,明显提高教学质量,推动编译原理课程教学良性发展。

参考文献

[1] 冯阿芳.基于建构主义理论的编译原理教学改革[J].继续教育研究,2009.8:149-150.

编译原理论文范文5

关键词:编译原理;软件工程;工程化;知识先期注入;工程化编译理论;阶梯状迭代教学法

中图分类号:G642 文献标识码:B

作为信息产业的核心和国民经济信息化的基础,软件产业日益受到国家的高度重视。权威数据显示,我国软件产业每年人才需求量近一百万,然而令人尴尬的是,许多软件企业却招聘不到真正合适的软件人才。信息社会不断增长的软件人才需求与优质软件专业教育供给不足的矛盾已成为计算机高等教育发展面临的一个重要问题。

2001年12月,经国家教育部和国家计委联合发文批准,全国首批35所示范软件学院正式成立,目的是批量培养具有国际竞争能力的高层次、应用型、复合型软件工程人才。自示范软件学院成立以来,我国软件工程教育事业得到了很大发展,学科建设逐步走向成熟,初步实现了与国际学科发展的接轨,软件工程教育实现了历史性跨越。

然而,软件工程是一个迅速发展的交叉性学科,相关的新概念、新技术、新方法不断涌现,这就要求教育机构要不断调整策略,以应对专业的快速变化。尤为突出的是,无论是全国首批35所示范软件学院还是非示范软件学院,大部分都根植于计算机学院,因此很多软件工程专业学科课程体系与计算机科学与技术专业基本相似,而计算机科学与技术专业的教学内容是远远不能适应软件工程学科的发展要求的。

从根本上解决上述问题的关键是,结合中国软件产业和软件学院已有的硬、软件基础设施及办学的具体情况,研究和定制适合本学院特色的软件工程学科的课程设置、教学内容、教学方法,形成一个良好的软件工程学科课程体系,使软件工程教学更具先进性、目的性和系统性,其中对计算机科学核心课程的工程化改造势在必行。

本文将研究计算机学科的“编译原理”课程在软件工程专业如何进行工程化改造,怎样创建适合软件工程专业知识体系要求的“编译原理”实践教学,从而在科学的软件工程学科课程体系的保证下,形成一个融基础理论、实验教学、工程实践为一体的整体化培养机制,以适应软件工程学科教学要求,使软件工程学科教学质量得到不断发展,使软件工程专业教育得到健康稳步发展,培养社会需要的软件人才。

1 “编译原理”的工程化实践教学体系

1.1教育教学理念

工程化实践教学就是树立工程化能力培养与基础理论教学、专业能力培养并重的教学理念,把工程化教学作为人才培养的核心任务之一,通过全面改革软件工程专业的人才培养模式、调整课程体系、充实教学内容、改进教学方法,在教学过程中全面体现能力和职业素质培养的思路,并将软件工程知识内容由浅入深、阶梯状、循序渐进地贯穿在工程化实践教学的各个开发项目中。

基于上述软件工程专业的知识体系、本科课程设置的指导原则以及工程化实践教学教育教学理念,下面将给出“编译原理”课程的工程化实践教学体系。

1.2 “编译原理”的工程化实践教学体系

如图1所示,“编译原理”课程的工程化实践教学体系由六个部分组成:编译原理课程工程化实践教学环境、编译原理理论教学、软件工程能力培养、阶梯状迭代工程实践项目、配套教材和评价体系。构建理念为以计算机科学为基础,以软件工程为核心,以目标应用为导向。

1.2.1 “编译原理”课程工程化实践教学环境

“编译原理”课程工程化实践教学环境由实验室、项目团队、教师讲座以及团队汇报组成。

(1) 实验室。以工程化培养理念指导教学实验室建设,为“编译原理”课程工程化实践教学提供强有力的基础设施支持。提供全天开放机房,机房实行开放型管理。项目开发时间规定为开时间和闭时间,闭时间为固定时间,要求授课教师到机房现场指导,开时间内,学生可以自由选择时间,以小组为单位进行自行讨论、设计,要求实验室人员在现场,以便解决设备问题。机房的使用和维护要有严格的管理制度,保证项目的顺利完成。

(2) 项目团队。将4~5个学生分为一个项目小组,一名组长作为负责人;每名学生分配一台微型计算机,在开发小组中以分工协作的方式完成指定的软件开发任务,完成项目设计报告,并提交完整的软件开发文档和源代码。学生在团队环境下使用最新的软件开发工具,获得较真实的软件开发经验,提高学生在项目规划、队伍组织、工作分配、成员交流等多方面的能力,培养学生团队合作及工程项目研发能力。

(3) 教师讲座。指导教师在整个的项目开发中纵览全局,项目的开始、结束及中间的每个模块都要进行全面的讲解、引导和组织。教师要系统讲解软件工程知识点和软件技术,统一讲解项目开发过程中学生普遍存在的问题,不断地发现问题,解决问题。

(4) 团队汇报。理论教学中教师唱主角,而工程化实践教学应让学生唱主角,让开发小组自己拟定演讲方案、内容,由教师审核修改后进行汇报演讲。这样可以有效地提高学生总结概括、研究立项、口头表达、演讲和交流沟通的能力,培养学生独立思考、分析问题的能力和创新能力。

1.2.2 “编译原理”理论教学

由知识的先期注入和工程化理论教学组成。

(1) 知识的先期注入。“编译原理”课程的理论性较强,整个课程内容由几个功能模块组成,学生对课程的完全理解应在最后一个模块,即课程结束时。鉴于教学内容的特殊性,应在一门程序设计语言之后安排“CO释程序的面向对象设计与实现”项目,作为前导实践环节,配套教材为《C++实战:解释程序的面向对象程序与设计》。这可以使学生在学习理论之前对程序设计语言的解释执行有较深的理解,由传统的“填鸭式”被动学习转变为学生自主式学习。学生对“编译原理”课程的学习由问“这是什么”变成“这是我需要的什么”,从根本上解决了“编译原理”课程的教学困难。实践表明,这种方法在锻炼学生实践能力的同时先期注入了理论教学需要的解释程序的知识和概念,有很好的教学效果。

(2) 工程化理论教学。编译程序是庞大而复杂的,这使得如何介绍编译原理本身就是一个难题。中外编译原理教材很多,如果从工程化的角度去诠释编译程序的实现过程及其原理,即对一个完整的源程序到目标程序的转换过程进行详细讲解,不失为一个新的途径。我们的配套教材《编译程序的实现原理》的编写形式如下:先给出编译器的输入――一个C语言小程序;再给出编译器的输出――目标机上的目标语言,完成这样的转换需要进行的工作包括词法分析、语法分析等几个功能模块;再针对每个功能模块给出本模块的输入和输出,如词法分析为一个C语言小程序,模块的输出形式为TOKEN链表,完成这样的转换需要进行的工作由理论和实现两部分组成。这种讲述方法实现了五化:

工程化:以对一个完整的源程序到目标程序的转换作为教学载体介绍编译程序的实现及其原理,以反映编译的工程性。

模块化:将一个完整的源程序到目标程序的转换作为总目标,将不同的子转换作为各个子模块的目标,以反映编译的模块性。

链接化:将一个完整的源程序到目标程序的转换所需的知识处理成总目标与子模块、子模块内所需知识点之间的链接,以反映编译的整体性。

需求化:将编译原理内容的平铺直叙转换为实现一个完整的源程序到目标程序的转换的所需知识,解决了编译内容的庞杂、不分主次、叙述冗长的问题。

形式化:将形式语言的内容介绍放置在为完成目标所需知识的位置,突出形式语言的地位、内容及其应用。

1.2.3软件工程能力培养

在工程化实践教学体系中,软件工程能力的培养是至关重要的。

软件工程能力包括软件需求、软件设计、软件构造、软件工程基础结构、软件配置管理、软件维护等知识单元。有些知识单元在早期学习,以促进学习条件的成熟;而有些知识单元的学习需要一定的成熟条件,应该放在后期讲授,如阶梯状迭代工程实践项目是整个教学过程中理论联系实际,培养学生动手能力、观察能力、分析和解决问题能力、团队合作以及创新精神的重要环节。把软件工程知识单元分期、分阶段引入阶梯状不同开发项目的全过程,形成了特色鲜明的工程化实践教育体系,使学生的软件工程能力在实际项目开发中得到锻炼和提升。“编译原理”课程工程化实践项目内容安排如表1所示。

“实践性、个性化、逐步工程化”是工程化人才培养的重要环节,也是学生成为合格软件工程化人才的实践过程。以上教学组织方法既保证了教学的系统性、知识性,又保证了教学案例的先进性和实践性。

1.2.4阶梯状迭代工程实践项目

编译器代码的长度可从10 000行到1 000 000行不等,编写甚至读懂这样一个程序都非易事,更何况是开发,因此编译器的实现比以前任何课程中学生承担的设计要大得多、难得多。纵观国内外大学研究现状,一般都是先设计一个语言,面向过程式或面向对象式,然后对设计的语言进行面向过程或面向对象程序设计方法的开发,早期采用面向过程语言编译器的面向过程开发,如吉林大学计算机科学与技术学院的编译原理实践课程“编译程序的设计与实现”,近期采用面向过程语言编译器的面向对象开发,或是面向对象语言编译器的面向对象开发,如“Modern Compiler Implementation in Java”。无论哪一种,学生都是一次性为具有上百条产生式语法的语言开发编译器,难度极大,这使实践课程的收效甚小。采用阶梯状迭代教学法创建的编译原理课程工程化实践项目从根本上解决了这个问题,配套教材为《编译程序的面向对象程序与实现》。

如图1和图2所示,编译原理课程工程化实践项目内容包括“C0解译程序的面向对象设计与实现”,“C1编译程序的面向对象设计与实现”,“C2编译程序的面向对象设计与实现”,“C3编译程序的面向对象设计与实现”。整体项目的源语言定义为C语言的子集,采用阶梯状迭代教学法后,将源语言定义为C0、C1、C2、C3,Cn是Cn-1的扩展。

编译原理课程工程化实践项目的优点有:

(1) 起点低:降低了开发难度。学生根据自己的实际水平选择源语言级别,有不同收效。从根本上解决了软件开发水平低的学生对编译程序开发望而生畏甚至放弃的问题。

(2) 阶梯上升:项目内容的选择不是零散的、随机的、重叠的,而是相互关联的。纵向为编译理论,是主要内容;横向为软件工程,是辅助内容。主要内容将难点分散,处理成阶梯状;辅助内容也将难点分散,同样处理成阶梯状。

(3) 迭展:每一个项目需求是前一个项目的扩展,因此,每一次的软件开发可以看作是前一次开发的迭代,使学生面对大型软件开发项目中最难处理的用户需求不断变更的问题,最大程度地使用重用技术。所有项目的开发承上启下、循序渐进、阶梯状迭展,为研究和学习软件生产线新技术埋下伏笔。

(4) 知识渗透:将软件工程核心内容及工程化软件开发思想由浅入深逐步渗透到各个项目中,每个项目具有不同级别的培养目标,学生从不同项目循序渐进地掌握工程化软件开发理念,降低了工程化软件开发的难度。

阶梯状迭代工程实践项目发挥了学生的主体意识,给学生足够的空间,激发了学生的活力与创新思维,并培养了学生的“三个能力”(自我管理能力、组织策划能力、社会实践能力)和“五种意识”(责任意识、服务意识、创新意识、团队意识、竞争意识)。

1.2.5配套教材

编译原理课程工程化实践教学配套教材共有3部,前导教材《C++实战:解释程序的面向对象程序与设计》与“编译原理”理论教学知识的先期注入配套;《编译程序的实现原理》与“编译原理”工程化理论教学配套;《编译程序的面向对象程序与实现》与阶梯状迭代工程实践项目配套,3部教材前后关联且各呈完整体系。本套教材为清华大学出版社“编译原理及其实践课程的工程化教学课群研究”立项项目,已出版1部,另2部明年中旬出版。

1.2.6评价体系

编译原理课程的工程化实践教学评价体系包括对学生工程素质和对教学体系的评价。

学生工程素质的评价采用过程化考核管理标准,即把工程化能力和职业素质引入学生工程素质的评价体系,加大工程化实践环节的比重,形成专业理论知识和实践能力并重的考核体制,将期末一张试卷定成绩的考评机制改为由工程化实践项目、随堂测验、论文、面试、考试、团队等多种形式相结合的评价机制,防止实验抄袭现象。编译原理课程考核采取理论知识和工程化实践项目完成情况的综合考核方式,工程化实践项目根据项目设计报告、软件开发文档、源代码和运行系统的质量进行考核,学生成绩以登记评定方式给出。

教学体系的评价采用回馈化考核管理标准,即把企业回馈和毕业生回馈引入教学体系的评价。对企业和毕业生进行跟踪调查,通过收集企业和学生的反馈指导教学和实践项目的设置和修订,形成良性循环,为进一步提高教学质量打下坚实基础。

2结论

软件工程是集计算机科学与技术、数学、经管等多学科的交叉性学科。作为一名软件工程教育者,我们必须建立一套具有自身特色的工程化人才培养体系,培育具有国际竞争力的一流软件产业高级/高端人才,结合软件工程人才的学科交叉性、偏重实用、职业定位等特点,系统深入地研究软件产业对技术型、管理型的人才需求,注重学生综合能力和专业素质的培养,才能在计算机系统、软件工具、软件工程和管理上循序渐进地提高学生的能力。

参考文献:

[1] Aho, Alfred V., Ravi Sethi, Jeffrey Ullman. Compilers: Principles, Techniques and Tools[M]. Reading, MA: Addison-Wesley, 1986.

编译原理论文范文6

关键词:编译原理;教学目标;教学方法;实验教学

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2013)05-0119-02 一、引言

《编译原理》是大学计算机专业本科教育的一门核心课程,它涉及形式语言、程序设计语言、算法和数据结构、体系结构和软件工程等内容。学生通过该课程的学习,除了应该掌握编译程序的工作原理和有关算法外,还可以增进计算机科学基础理论知识,进一步加深对数据结构和算法等课程的综合理解和灵活应用,以及提高软件开发的能力。但是,由于受到教学时数的限制,要全方位地在这些方面去培养学生,是相当困难的,而是要根据教学对象以及对其专业能力的培养目标,来确定课程的教学内容和相应的教学手段。我们认为:对于理科学生,可偏重于理论研究能力的培养,使学生掌握形式语言与自动机的基本理论和常见算法,为从事计算机理论研究打下坚实的基础;而对于工科学生,可偏重于软件开发能力的培养,提高学生对数据结构和算法知识的综合应用能力,以及程序编制能力。本文针对工科生的特点及其培养目标,对《编译原理》课程的教学目标定位和教学方法进行一些分析和实践总结。

二、教学目标

《编译原理》课程的教学目标一般是使学生掌握形式语言和自动机的基本理论,以及编译程序有关的算法和开发方法[1]。考虑到对工科学生的基本要求是能应用基本理论解决工程实际问题,我们要求学生在能正确理解形式语言和自动机的基础理论基础上,不仅能掌握其在程序设计语言翻译中的应用方法,而且能灵活应用于解决计算机工程领域中其他有关问题,例如:命令行处理器、用户界面等。我们向学生强调,通过学习编译原理这门课程,掌握编译程序的基本原理和有关算法只是一个方面,另外一个很重要的方面是培养应用基本理论来解决实际问题的能力,加强数据结构及其算法的综合应用能力,以及提高编制大程序的能力。在教学内容安排上,我们把重点放在词法分析、语法分析、语法制导翻译、符号表和中间代码生成上,而对代码优化、目标代码生成、寄存器分配等内容只作概要性介绍。

三、教学方法

(一)化抽象为具体

《编译原理》课程的内容非常抽象,大多数学生在学习过程中,会对其抽象的术语和符号、以及枯燥的形式化推导过程感到困惑,并渐渐失去学习的兴趣和热情。如果能从具体的例子出发,再抽象出基本概念,就能使学生对抽象的概念有更深刻的理解。

例如,“LR(0)分析”是《编译原理》课程中非常精彩的一节内容,但由于涉及“活前缀”、“LR(0)项目”等许多抽象的术语,学生往往难以理解,特别对“构造识别活前缀的有限自动机”的思想内涵的理解难以透彻。我们在讲解时,不是直接给出这些术语的定义,而是从一个LR分析的实例出发,让学生观察LR分析过程中分析栈内容的变化及其特征,引导学生发现“分析栈中的符号串有三种格局:不含有句柄的任何符号;含有句柄的部分符号;正好含有句柄的全部符号。”这时,可向学生引入“活前缀”和“LR(0)项目”等术语的含义:“活前缀”就是LR分析过程中分析栈中形成的一个符号串,而“LR(0)项目”就是刻画这个符号串的格局。最后给出“活前缀”和“LR(0)项目”的形式化定义。这种讲法,不仅可以使学生对这些抽象概念有具体的感性认识,从而更容易地去理解相应的形式化定义,而且可以培养学生逐步适应形式化描述。接着在讲解“构造识别活前缀的有限自动机”时,先让学生回答“使用LR方法,用给定的一个文法去分析一个符号串时,会有哪些可能的LR(0)项目出现,并且这些LR(0)项目是如何迁移的?”,进一步启发学生:“一个文法的任何一个句型,它的句柄只可能是这个文法的某个产生式的右部。”。这样,学生就能较好地理解如何从一个文法求出它的所有LR(0)项目及其迁移关系,进而也能较好地掌握构造识别活前缀的有限自动机的方法。

(二)开发和使用多媒体教学课件,采取直观形象的教学方式

对《编译原理》课程中的一些抽象内容,除了采用“化抽象为具体”的方法外,我们还开发了一组多媒体教学课件,用于动态演示一些较为复杂和难以理解的编译过程。例如,在用属性文法描述一个语法制导翻译过程的教学中,学生很难从一个给定的属性文法想象出一个具体的翻译过程。要让他们用一个属性文法来定义一个语法制导的翻译过程,那就更难了。所以,我们针对教材[2]中给出的每个程序结构的语法制导翻译过程的属性文法,分别结合一个具体的例子制作了多媒体课件,用于动态演示在语法制导翻译的每一步过程中,是如何使用与产生式相关联的属性计算规则来进行翻译的。图1(a)是“控制语句中布尔表达式的翻译”的多媒体课件的一个画面,它同时显示了某步翻译过程所依附的产生式、所使用的属性计算规则,以及引起的符号栈和属性栈的相应变化和产生的翻译结果。通过使用这一多媒体课件,学生对于属性文法的理解更加透彻了,应用属性文法的兴趣和能力也有了很大的提高,许多同学都在相关的实验中自觉地用上了属性文法,获得了更好的实验效果。

我们还对教材中的某些算法的冗长文字描述,制作了多媒体课件,以更加直观、生动的方式表现这些内容。例如,教材中有关利用DAG进行四元式优化的算法描述,文字很长,而且含有很多嵌套的选择结构,在课堂上很难直接展现,同学们在课后也没有很好的把它完整地看下来。所以,我们将这段文字描述改成流程图的形式,并结合具体的例子,借助多媒体课件展现了动态的执行过程,如图1(b)所示。

(三)优化实验教学方案,增强实验教学效果

实验课的教学目的主要有两个:一是巩固和强化主要的编译理论和方法;二是熟悉软件的开发方法,提高软件开发的能力。为了取得较好的实验教学效果,我们将实验教学分成两个阶段加以实施。

第一阶段以巩固主要的编译理论和方法为目的,安排了词法分析、递归子程序法语法分析、LR(0)法语法分析、以及语义分析和中间代码生成等四个实验,并且与课堂理论教学保持同步。为了激发同学的学习兴趣和热情,这四个实验的设计基于如下的原则:实验要编译的语言以小为宜,但能体现编译原理的核心思想;编制实验程序不必从零开始,但能涉及编译程序的关键代码。我们设计了图2所示的语言,作为这四个实验所用的语言,并给出了这个语言编译程序的框架,但隐去了体现编译原理核心思想的关键代码,要求学生在实验中将其编写完整。在对近几届学生的教学实践中,我们发现这一阶段的实验教学方式能增强学生的学习兴趣和信心,消除了许多学生在实验课初期对《编译原理》课程的恐惧感,避免了学生在实验室无所适从、无从下手、在网上盲目搜索类似程序的状况出现。

第二阶段以加强编译原理和方法的综合应用能力和软件开发能力为目的。我们安排了两个综合实验:一是在第一阶段的语言中增加“*”、“/”两个运算符;二是增加一条“repeat...until”语句。这两个实验都要涉及扩充原有的文法、修改原先的词法分析程序、语法分析程序和语义分析程序。这就可提高学生对编译程序总体架构的认识和理解,增强对编译原理和方法的综合应用能力,对“增量式软件开发方法”形成一个初步的认识。

四、结语

本文是对上海市教委重点课程《编译原理》建设项目的部分工作成果的总结。近些年,不少人对《编译原理》在计算机专业课程中的地位和作用有不同的看法,认为绝大多数学生在大学毕业后,很少有机会从事编译程序的研究和开发工作,提出不将《编译原理》作为计算机专业的必修课程。我们认为,《编译原理》集理论与实践于一身,只要我们确立合理的教学目标,采用有效的教学手段和方法,它对于加强学生对基础理论的综合应用能力,增强学生的软件开发能力是一把神兵利器。我们的教学实践印证了我们的观点,近三年学生对我们开设的《编译原理》课程的评分分别为94.2,95.1和97.4。

参考文献:

[1]ACM/puter Science Curriculum 2008[R].

编译原理论文范文7

【关键词】编译原理 改革 教学方法 动手能力 组织教学

一、引言

编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。

二、在教学过程中存在的问题

在编译原理课程的教学实践中,我们发现需要解决下列问题:1. 教学内容比较偏重于原理。编译原理中的核心理论是词法分析和语法分析这两部分, 如果说不去做题的话是不可能学懂的。那么按照这样的教学内容教课, 就容易给学生造成误解, 认为学编译原理关键就是会做题。但是事实上是不对的,编译原理不同于一般我们所学的纯理论课,它的实践性也是很强的。2. 实验内容所使用的语言不合理。目前大多数教材中的实验内容使用PL/0语言的编译程序。但是事实上因为PL/0语言是pascal的子集,而现在很多学生已经不再学习pascal语言了,所以大多数的程序是看不太明白的。3. 实践环节太薄弱。纵观整个编译原理的教学,事实上所偏重的都是理论教学,而真正的实践实在是少之又少,以致学生搞不太清楚研究编译原理到底有什么意义。

而且由于编译原理涉及的理论知识较多, 形成了一种抽象层面上的数据变换, 许多学生难以理解, 曾一度被视为天书。有些学生在专业课学习时还存在考研或实用的偏爱, 投入到编译原理的学习时间相对来说就较少, 给教学带来一定的影响。

三、 对这些问题做出的一些改进方法

针对以上的这些问题,我们有必要对编译原理这门课程做出一些改革。

第一,区分不同层次的学生合理组织教学。在教学过程中要考虑到大多数学生的学习现况,达到基本的教学目的,讲授编译原理的基本概念、基本知识,让绝大多数学生了解编译原理的基本思想,掌握常用的编译技术。具体的说,可以根据学生对编译原理的不同要求,将学生分为两个不同层次:第一层次的学生只是按大纲要求掌握编译原理的基本内容, 第二层次的学生则需要在第一层次基础上拓展和提高。这类学生一般是对编译原理有兴趣,准备考研或者是想掌握相应的编译技术的。教学内容应以第一层次的学生为基础, 而实验内容应考虑第二层次学生的要求。针对这样的情况,教学的主要内容相同, 但要求不同, 如课后作业可分必做和选做两种, 实验内容也可分必做和选做两种。在教学过程中, 应突出编译原理的主要内容以及基本框架, 对教材及教学内容做一定的取舍, 突出重点。

第二,灵活应用多种教学方法。利用启发式教学提高学生学习的积极性和主动性。根据教材的内在联系和学生的认识规律,由浅入深、由近及远、由表及里、由易到难逐步提出问题,解决问题、引导学生主动、积极、自觉的掌握知识。

采用形象化的方法来帮助学生掌握原理。比如,在讲解句型的短语、直接短语和句柄的时候,如果按照书上所给出的概念来做的话,学生理解起来非常困难,这个时候可以依靠语法树来帮助学生理解原理。语法树有几个内部节点就代表有几棵子树,每棵子树的叶节点从左至右排列组成一个短语 ,只具有父子两代的子树则组成了直接短语,而处于整棵语法树最左边的只具有父子两代的子树则构成了句柄。

利用实例教学,通过从环境中取得若干与某概念相关的例子,经过归纳得出一般性概念。首先让学生学习理论知识,然后讲解和知识相关的实例,让学生听懂例子,理解例子,学生再综合实践,从而激发学生学习这门课程的兴趣,增强了学生的自信心,为学好这门课排除心理障碍。

第三,加强学生的动手能力。为了帮助学生理解编译的各个过程,可以在学期最开始的时候布置给学生完成一个简单编译器的作业,等到学期结束的时候验收。这样,学生在学习理论知识的同时又锻炼了自己的动手能力,并且加深了对整个编译器工作过程的理解。因为,如果不理解编译器编译的各个过程的话,是无法很好的完成这样一个编译器的。

编译原理论文范文8

1清末译书的内容和种类

据《中国近代出版史料》统计,1880—1904年,汉译日文书共2,200多种,其中自然科学260多种,应用科学近400种,社会科学近1,400种,其他200余种,社会科学约占60%。由此可以看出,清末译书主要是以社会科学为主,而在社会科学中又更侧重政治理论读物,这显然是与译书学人的政治要求是相一致的,因为这些人留学日本的目的是希望通过学习日本先进的政治制度挽救中国的民族危亡,故而他们充分利用通晓日文的优势翻译了大量政治法律方面书籍,如《论》(菊地学而著、林桀译)、《日本议会史》(工藤武重编、汪有龄译)、《万国宪法比较》(辰巳小二郎著、戢翼译)、《欧美政体通览》(上野贞吉著、巅涯生译)、《国家学原理》(高田早苗著、稽镜译)、《国民公私权考》(井上馨著、章宗祥译)、《政治泛论》(永井惟直著、范迪吉等译)等。仅次于政治学的是教育学。留日学生把教育看成振兴中国的基础,大力倡导兴办学校,而新学堂的设立急需大量的教科书,因此解决教科书问题成为当务之急。这种客观形势直接促进了留日学生对教育类书籍的翻译。《游学译编》《译书汇编》等期刊专设教育专栏,介绍世界流行的教育理论,风格流派,企图以其开民智,促进中国教育。例如刘揆一翻译了日本高等师范学校教师内藤庆助编著的《小学教育法》,“于教育之原理,修理之方法言之尤为亲切”[11];湖南编译社翻译了《学校实践管理法》,所刊广告直接切中中国教育界之要害“中国言学校数十年矣,而造就无人……是故因学课之不高亦管理未善有以致之也”,并强调翻译该书的目的是“以饷国民”[11]。除了一般的教科书、教育理论方面的书籍,留日学生还翻译了有关教育管理方面的论著,如编译出版了日本的教学大纲《新译普通学科教授细目》,日本中野礼次郎的著作《十九世纪欧洲教育之大势》等等,其根本目的在于让中国人了解“欧洲各国教育发达之原因”[11]。可以说,留日学人翻译的这些图书,为当时的中国教育界指明了学习的方向,为中国的教育改革提供了蓝本,在当时的教育界产生了巨大的反响,这批图书也受到了广大教育者的好评。除了政治学和教育学,留日学生还翻译了大量其他学科的著作,如哲学、史学、宗教学等等。学人们编译了数十部亡国史,如《近世亡国史》《波兰衰亡史》《印尼灭亡史》《朝鲜亡国史》等,冀图以史为鉴,唤醒中国人的救国热情。倾向革命的留日学生则大量编译资产阶级革命史书,如《美国独立史》《法国革命史》《意大利独立史》等,这些书籍为中国革命青年指明了正确的方向。此外,学人们还编译了许多理论书籍,如哲学方面编译出版了《哲学纲要》《哲学大观》等;史学理论方面有湖南编译社出版的《史学原论》;宗教学方面有留日学生编译的《世界宗教史》《宗教研究》《伦理与宗教之关系》等。除了上述译书种类,留日学生还翻译了包括经济学、军事学、社会学、人类学等数十种类别的书籍,内容广泛,他们通过翻译活动将世界上最新的知识带到中国,对中国社会的进步做出了突出贡献。

2清末译书活动的影响

2.1推动了清末教育变革的进行留日学生的译书活动,推动了清末教育变革的进行,促进了中国教育事业的发展。据许多参与编译图书的学生回忆,那时他们在学堂用的教科书,多为这些留日学生的译本。留日学生对教育变革所做的最突出的贡献,就是将各种新式教科书引进学堂。1900年以后,由留日学生组成的翻译团体,如译书汇编社、湖南编译社、教科书编译社等,都曾编译过大量教科书,涉及历史、地理、教育、法制、经济等方面内容,一些留日学生回国后仍继续从事教科书编译工作。1903年,京师大学堂刊有《暂定各学堂应用书目》,其中不少都是由留日学生所译,如箕作元八等著、胡景伊等译《欧罗巴通史》,失津昌永著、吴启孙译《大地平方图》及《五大洲总图》,杨廷栋著《理财学教科书》,何橘时译补《中学生理教科书》,水岛久太郎著、陈榥译补《物理学》等。当时出版界的龙头———商务印书馆甚至“招聘不少归国的留日学生,出版各种新式教科书。这批教科书大部分以日文书为蓝本编纂而成”。虽然留日学生所译的教科书总体看来比较粗糙,如“取材过于日本化”,“日文语气太重”等,但晚清留日学生的译书活动毕竟迈出了由旧教育走向近代教育的重要一步。他打破了中国传统的教育内容,为中国教育注入了一丝新的活力,更提供了更多新的教育方法和形式,极大地震撼了中国传统教育界。同时,这批译书满足了国内新式学堂发展的需要,推动了清末教育变革的进展,为更好地改造传统教育积累了经验。

2.2促进了新思想、新概念的传播留日学生的译书活动,使西方文化广泛传播,让中国人民接触到外国各种先进思想和理念,是又一次重要的思想启蒙。这股译书热潮,对提高中国人的思想文化水准无疑是不能低估的,许多新思想、新概念都是通过译书得到传播的,一些新兴词汇都是由留日学生首先使用,并经由他们传到中国,并被中国人民广泛接受。如“帝国主义”一词,就是由留日学生首先使用的。1901年,《开智录》在“论帝国主义之发达及二十世纪之前途”一文中痛斥帝国主义就是“侵略主义”“扩张版图主义”“膨胀主义”,此后“帝国主义”一词被广泛使用。另外,“经济学”“社会学”等词也是由留日学生首先使用的。《译书汇编》第七期在翻译日本法学博士失野为之的《经济学研究之方法》一文时,首先使用了“经济学”一词;而戊戌时期严复等人在介绍欧洲社会学时一律称为“群学”,直到1902年留日学者章太炎在翻译日本岸本能武太所著的《社会学》一书时首次使用了“社会学”一词。上述数个新名词的出现都为当时中国迂腐陈旧的思想界注入了一丝新鲜活力。可以说,留日学生对这些外来文化的接纳和吸收,促进了新思想、新概念和新文化在中国的传播,对中国思想界做出了突出贡献。

2.3为辛亥革命奠定了思想理论基础留日学生所译书籍广泛介绍了资产阶级的民主政治学说,冲击了中国封建文化,为辛亥革命的爆发奠定了思想理论基础。如湖南留日学生杨毓麟撰写的《自由生产国生产史略》在《游学译编》上连载,详细介绍了美国的诞生和发展,同时结合中国实际,畅谈体会和感想,他写到,“欲造国民者,必先造其魄力;欲造其魄力,必先造其思想;欲造其思想,必先造其根性。”留日学生在辛亥革命发动之前,为其做了大量的舆论准备,直接反映辛亥革命前的历史的译作,有日本宫崎寅藏著,金一(金天翮)译的《三十三年落花梦》[15],此书秘密流行在民间,在当时的知识分子中起到了强有力的革命宣传作用。

3结语

编译原理论文范文9

随着信息技术的迅猛发展及其应用领域的不断深化,几乎所有专业的研究与应用都离不开信息技术。信息化浪潮对高等教育也带来非常直接的变化,各专业课程设置无不将计算机知识教育作为其课程设置的组成部分。几乎所有专业的大学毕业生,都要求掌握基本的计算机操作技能,非计算机专业学生需要通过计算机等级考试,而一些和信息技术密切相关的专业,如电子信息、信息管理、电子商务等,课程设置上与计算机专业更是大量重叠,计算机知识教育在各专业中的渗透程度日渐加剧。

1 计算机专业面临的新挑战

在计算机知识正在成为各专业基本教育内容的背景下,计算机专业学生的专业优势受到很大的挑战,以往在软硬件知识和应用能力上的独特优势似乎在逐渐弱化,与具有特定专业背景的学生相比就业压力越来越大,由此也引发计算机专业到底学什么、专什么的现实思考,我们必须面临的问题是:计算机专业的学生专业优势体现在哪里?

计算机学科是一门技术性、工程性和应用性很强的学科,并有其基础理论支撑的科学体系。计算机也是一种使用工具,但那种把工具使用等同于计算机专业的狭隘认识,其思维实际上和十多年前认为“会用计算机打字就是会用计算机”如出一辙。计算机专业学生的优势应该在于:通过系统的专业原理性知识的学习与训练,熟练掌握基本的应用技能,并能够“知其然,且知其所以然”,为此专业基础课程的熏陶必不可少。而编译原理就是一门介绍这种原理性知识的综合性专业基础课程。

2 编译原理是计算机专业必不可少的基础知识

计算机专业的理论基础对培养学生的计算机专业素养具有非常重要的作用。

在众多的原理性学习课程中,编译原理主要承担了语言实现原理、方法和技术的介绍。人们借助计算机减轻自己的劳动强度,提高生产率,完成一些人类无法进行的危险、高难度工作。然而所有这些工作都必须借助程序设计语言书写的程序来指挥计算机。非机器语言程序功能的实现必须由翻译程序来完成。正是有了编译程序、解释程序、汇编程序等翻译程序,人们才可以使用自己习惯的语言将需要计算机做的事情描述成程序,并通过这些翻译程序的工作让计算机理解并执行。可以说,没有翻译程序,计算机本文由收集整理不可能象今天这样得到如此广泛的普及,网络也不会有今天这样大的吸引力,我们的生活、学习和工作将会是另一个样子。

包括编译程序在内的翻译程序承担了实现语言的功能,它所涉及的知识包括形式语言、自动机理论等语言定义、翻译与实现的基础知识,这些知识可以让学生领悟到计算机理论的精髓,可以让学生从实现的角度重新审视软件的开发,有助于学生对软件的真正认识,对于今后从事应用软件、语言开发平台、编译系统甚至操作系统开发等都是非常有好处的。同时,编译原理是许多课程的一个综合性的实践,它进一步加深了学生对程序设计语言课程中语言基本单位的定义和作用的理解。例如,编译程序使用的一些数据结构和算法是“离散数学”、“数据结构”以及“算法设计与分析”等课程相关知识的典型应用;编译程序对目标代码的存储组织与分配功能的实现原理又与“操作系统”的相关内容相互渗透;编译程序对中间代码的优化功能的实现则是数学、逻辑学、结构程序设计和优化理论的综合应用和专门化。因此,编译的原理性研究、学习和实践,可以多角度提高学生的逻辑思维能力、实践动手能力、编程调试及综合应用能力,有助于切实有效地提高学生的专业素质。另外,编译课程中介绍的知识也是后续许多课程的基础。所以,编译原理是计算机专业学生必须掌握的基本原理,编译原理课程是计算机专业非常重要的专业课程。

尽管经过计算机专业人员的大量努力,大量的工具软件为我们提供了极大的便利,以至于人们只需要通过若干次点击鼠标左键就可以方便地完成很多工作,但这并不是说所有问题都已经解决,还有很多深层次的工作需要计算机专业人员去完成。如果我们的计算机专业毕业生也只会“点击左键”,很难想象他们会开发出更好的工具,或对计算机技术的发展作出应有的贡献。

专业理论基础的学习,可以培养学生的思维方式和洞察力。计算机技术的更新是非常快的,系统的理论基础可以让学生在将来更好地适应新技术,可以让他们在理论框架的指导下寻找解决问题的方法,朝不同的方向发展!因此,“编译原理”课程应该是计算机专业必须的重要基础课。

3 编译技术的应用及需求

编译原理课程的重要性,不仅仅是因为它所介绍的知识是计算机专业理论知识的重要组成,也在于编译程序所使用的一些原理、方法和技术在非编译系统的实际应用中也发挥了很大作用。

例如我们常用的文本编辑工具的实现,涉及到的字词、语法正确性等内容就是编译里介绍的词法分析、语法分析技术的具体应用;又如现在大家上网必不可少的搜索引擎,在处理用户输入的查询要求、对文档资源的特征分析、提取与描述等工作中都用到编译的相关知识:一些特定的应用也可以用到编译中的方法来解决问题,比如用正规表达式描述网络上某种信息的特征等。

随着消费类电子产品的大量开发,嵌入式系统的应用需求也不断增加。在这种情况下,搭建适合的交叉编译环境的工作日益重要,急需掌握编译器构造相关原理、方法和技术的从业人员。这不仅说明了编译知识的生命力,同时也给高等学校计算机专业的编译课程设置带来了新的要求。

现实告诉我们,目前的问题不是计算机专业要不要开设编译原理课程,而是该如何改进编译原理的内容与教学方式,以更好地适应社会的需求。

4 国内外编译相关课程的设置情况

我们查阅了国外一些著名的大学计算机专业的课程设置情况,研究了其中与编译相关的课程安排,发现他们对与编译相关知识的介绍是非常重视的。

美国麻省理工学院的计算机专业课程设置中,与编译相关的课程就有structure and interpretation of computerprograms,computer language engineering(包括基本概念、编译器的功能和结构、基本程序优化技术、理论和实践的交互作用以及使用工具编制软件),mulfithreaded parallelism:languages and compilers加州大学伯克利分校工学院的计算机课程设置中,涉及编译的课程有implarnentation ofprogramming languages,programming languages and compilers,

structure and interpretation of computer programs等:英国剑桥大学的计算机科学课程与编译相关的有compilerconstruction和advanced compiler design等。

可以看到,这些学校的计算机专业课程有的设置了专门的编译课程,有的虽然没有设置专门的课程,但在不同的课程中都安排了专门的内容和相关的知识,不管课程设置的方式如何,编译在其中都占有很重要的分量。这足以说明国外在培养计算机专业的人材时,是非常看中其对编译相关知识的掌握的。

在国内,多年来编译原理一直是各校特别是教育部所属高校计算机专业的必修课,曾经也是计算机专业硕士入学考试的必考科目,现在某些学校的计算机专业硕士生入学面试和博士入学考试还必考编译原理。编译原理课程在我国计算机专业人材培养中起了很重要的作用,新形势下开发具有自主知识产权的计算机系统软、硬件,更需要编译原理课程继续发挥作用。

5 关于我国计算机专业编译原理课程设置的建议

一般认为,编译原理课程是计算机专业最难的课程之一,它是数据结构、语言、算法和软件设计等知识的综合体现,学生对这门课程的理解确实会有一定难度,但这正是教师工作需要解决的问题。实践证明,如果让学生认识到了课程内容的重要性,并辅之以合适的教学方法和教学手段,取得良好的教学效果是不难的。

为此,我们思考了新形势下编译原理课程所涉及内容的教学及课程设置的改革问题,如果必须改变现有的课程设置模式,我们建议在编译原理课程的设置上,可以考虑采取以下两种模式:

(1)课程分解式将编译原理课程根据内容分成两门课:一门为必修,可命名为“编译技术”,主要介绍一些为满足基本应用而需要学生掌握的基础知识、方法、技术,以达到语言实现理论基础介绍的目的;另一门为选修,可命名为“编译理论”,主要介绍偏重原理性的、更深层次的内容,方便有进一步深造需要的学生学习。

(2)内容分解式

可以不单独设置一门编译课程,可将课程的内容根据其深浅,涉及到的具体问题,及与其他课程内容的相关性等分解到不同的课程中去,使学生在不同课程的学习中逐步掌握相关知识。

精品推荐