首页 优秀范文 编译原理论文

编译原理论文赏析八篇

时间:2023-03-23 15:14:45

编译原理论文

编译原理论文第1篇

【关键词】新闻;目的论;新闻编译

0 引言

新闻翻译是一种目的性的行为。由于各民族间语言、风俗、和文化等差异性的不可避免性,源语言文本很难被译者按照字面的意思翻译。因此,完全地重视源语言新闻有时并不能达到理想的信息传播效果,那么译者需要发挥其主观能动性,采取必要的翻译策略,以达到更有效的信息传播的目的。其次,新闻翻译要求目标语言读者能够理解译文,译文在其介入的交际环境和文化中应有一定的意义。新闻译者需要采取目标语言及目标语言文化定位的翻译策略,使得译文在其介入的的交际环境和文化中有一定的意义。因而,以德国功能派翻译大师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页)接翻译成“叛乱省”势必会影响与台湾人民之间的感情,也是与事实不相符合的,因而,译者巧妙地运用了改编法,把“叛乱省”翻译成“不可分割的一个省”,这样既符合事实也加深了与台湾同胞的感情。

4 结语

翻译目的论作为新闻翻译的指导理论,为新闻翻译研究开辟了一个全新的视角。因而,新闻翻译者可以在目的论的指导下有效地运用各种翻译策略,更好地达到信息有效传播的目的,推动各文化之间的交流。

【参考文献】

[1]王友琴.浅谈目的论与新闻英译的关系[J].牡丹江教育学院学报,2011.

[2]袁健兰.从目的论看新闻英语标题翻译[J].海外英语,2010.

[3]王大志.翻译与翻译伦理[M].北京:北京大学出版社,2012.

[4]郭建中.文化与翻译[M].北京:中国对外翻译出版公司,2000.

编译原理论文第2篇

关键词:编译程序;教学改革;对象式程序设计;Java

1引言

编译原理课程是高校计算机类专业的重要基础和骨干课程。编译原理对计算机专业的学生的重要性与高等数学对理科学生的重要性几乎可以相提并论。同时,由于这门课程涉及其他多门课程的知识,使得它成为大学阶段中最难学的课程之一。

从表面上看,编译程序是将高级语言源程序翻译成低级语言程序,但编译程序构造的基本原理和技术也广泛应用于一般软件的设计和实现,其中的设计思想、算法、思维方式和技术都可能会对学生今后的职业发展产生比较大的影响。

当今,程序设计已经基本上从传统的过程式转向对象式,并且正在从对象式转向组件型。这其实是程序设计范型的变迁,是在计算机技术背景下认识世界的观点的变化:过程式将完成事务看成是一系列的步骤,而对象式却将世界看成是由一系列对象组成的,这些对象之间交互合作完成特定的事务。从过程式到对象式,有着质的变化,而非一般的修改和完善,由此带来了语言(算法描述工具)的变化。编程语言影响思维,面向对象的思维方法又促进了编程语言的发展。

目前,程序设计的一些后继课程,如数据结构等都进行了同步跟进,出现了诸如用C++或Java描述的数据结构教材。但编译原理课程却没有及时跟进,上述改变基本上没有反映到编译原理课程中。这门课程近20年来基本上没有大的变化,教学内容仍然是基于过程式语言展开的,编译算法和模型描述是用PASCAL语言或者C语言。虽然个别教材加入了少量关于对象式语言编译技术的内容,那也是稍加点缀而已,作用不大。这就造成了一种奇怪的现象:对象式语言已经成了高校计算机教学的主流语言,社会上大量使用的也是对象式语言,而我们的编译原理教学仍然沿袭旧的一套。这种“状态”严重地脱离了计算机技术的发展和社会的实际需要,因此需要进行“调态”,其根本做法是“转型”,即将本课程的讨论对象从过程式语言转到对象式语言。

国外近年关于编译原理方面的新教材已经有了重要改变,不再连篇累牍地讨论那些已经过时的内容,增加了许多新的内容。其中一个重大改变是出现了用对象式语言描述编译算法和教学模型的编译原理教材,如:用Java语言描述的编译原理教材,且其教学模型为MiniJava。

这种改变也涉及到课程上机实践。众所周知,编译原理课程的学术性和实践性都很强:学术性是这门课程的生命所在,实践性是这门课程的活力所在。因而本课程的上机实践也要作同步调整。

2课程内容围绕对象式语言展开

研究程序设计语言的语法描述需要有文法理论的支持,老教材中文法、词法分析和语法分析部分内容基本上不需要作什么变动。词法分析主要依赖有穷状态自动机理论,语法分析主要讲述LL方法和LR方法,其他方法略做介绍即可,无需展开讨论。LL方法和LR方法含盖了许多分析技术,理论性和应用性都很强,完全可以代表主流技术。

重要的就是研究对象和教学模型的改变。首先,研究对象将从过程式程序设计语言转到对象式程序设计语言(当然还可以兼顾过程式),例如Java、C++等,围绕实现这类语言的编译实现技术展开讨论。对象式程序设计语言的要素是封装、继承、多态性,在编译实现时都必须仔细考虑。其次,涉及到对象式程序设计语言编译程序教学的模型选择问题。目前传统的教材选择的教学模型有PL/0、TiniC等。实践证明,围绕某个模型展开编译设计技术的讨论,效果是比较好的。课程研究对象和教学模型的改变涉及到调整的章节主要有语法分析、语义分析、代码生成、符号表管理、存贮分配等方面。

一旦我们讨论的模型发生变化,这些章节的内容就要作很大调整。如对象式语言的作用域规则、语言动态特性、模块化封装(类)、类的继承、多态性的实现等,都需要具体的技术来实现,这些都要反映在教材和教学中。

就课程中关于代码生成内容来看,目前Java编译程序生成Java虚拟机(JVM)代码,C#生成MSIL虚拟机代码。这两个虚拟机作为教学模型来说可能比较复杂了一些,在教学中可以选定一个简单的子集;或者在PL/0虚拟机上适当增加一些指令代码,以便于代码生成、存贮分配等部分的讲解。

实践证明,作为教学模型,在教材上提供一个小型语言的编译程序供学生分析和研究,非常有利于加深对基本原理的理解和掌握。这个小型编译程序可以比较小但应该能够说明一些基本问题,例如传统的编译原理课程中选择PL/0编译程序作为教学模型,就收到了比较好的教学效果。在对象式程序设计语言编译原理课程中选择Object-pl/0或者MiniJava作为教学模型是比较恰当的。前者是在传统的PL/0语言上增加类,补充封装、继承、多态性之语言成分得到的;后者是对Java语言进行适当简化得到的,其主要语法描述如图1所示。

图1MiniJava语法

编译原理课程可以围绕此模型展开讨论。国外已经有这类教材出现,并且不少大学已经开始使用。

3用对象式语言描述编译算法和教学模型

本课程中各类编译算法都应该伴随着教学模型的变化,改用对象式语言来描述,如用Java语言描述或者用C++语言描述。其中一个重大的变化是教学模型如MiniJava或Object-pl/0要用对象式语言实现,也就是提出了教学模型的面向对象构造问题,这就比较好地将讨论对象和描述讨论对象的语言统一起来了。国外有的教材就选择了用Java描述MiniJava编译程序。编译程序是一个重要的中大型软件,传统的编译程序大都是用PASCAL、C等语言描述的(参见图2)。像编译程序这样的中大型程序如何用类这个工具来进行分解,其实是对学生的对象式程序设计能力的一个重要检验。学习用对象式语言来描述编译程序,学生可能会受到一次严格的对象式语言程序设计训练,编译程序如何用类这个工具进行分解,这些类(对象)如何合作完成编译任务,都需要较好的对象式程序设计基础。图3是一个程序设计语言文法的面向对象表示。

传统的编译程序构造主要存在如下一些问题:

(1)传统编译程序试图通过将编译程序根据功能模块分解,而使整个编译程序的复杂性降低。这种方法虽然在一定程度上简化了编译过程。但为了处理大型、复杂且多变的编译程序,仅仅将它按照功能分解成词法分析、语法分析、语义处理和代码生成几个阶段是远远不够的。

(2)传统的编译程序构造中,编译的每个阶段依然是大型、复杂的,且每个阶段内部依然存在复杂的联系,这对编译程序的可维护性没有实际上的改变,反而造成维护困难。

(3)虽然传统的编译程序构造有着丰富的理论基础,也有一些工具诸如Lex、Yacc等,但对一个具体的编译程序的构造仍然要从最基本的描述开始。传统的编译程序构造的功能分解方法缺乏支持复用的良好机制。

总之,过程式程序设计范式存在的问题在编译程序设计中广泛存在。而用对象式程序设计语言来描述编译程序,则对象式程序设计范式带来的好处基本上都能够得到。具体主要表现在:

(1)编译程序效率高。由于面向对象的编译程序构造采用的是语法树构造法,可以得到上下文相关信息,并根据上下文进行语法树的优化,所以生成的代码效率高。

(2)复用方便。由于语法类和具体的语法结构一一对应,所以在复用语法结构时,可以直接得到能被复用的语法类,不需要经过查找过程。

(3)修改方便。由于面向对象方法中的封装和多态等技术的实现,语义处理方法中所用到的数据都是局部数据,因此要做语义修改时,只要继承相应的语法类,并且重载相应的语义处理方法即可,需修改的内容较之传统方法要少。

(4)有利于构造编译程序类库,使得编译程序的构造能够大量复用已有的类,这是更高层次上的复用。

4课程实验的设计

计算机学科是一门技术学科,它虽然有一定的科学的成分,但工程技术的成分更多一些,因此需要加强动手能力的培养。编译原理课程除了注重它的原理性,还必须注重其实践性。学习这门课程时,学生对编译的理解往往只停留在书本的概念上,而不知道怎样把编译理论应用到实际的编译程序设计的实践中。另外,有些学校只将教学内容锁定在文法、词法分析(有穷状态自动机)、语法分析(LL、LR文法)上,以应付学生考研的需要。这些做法使得学生很难掌握这门课程的精髓。

图2传统的编译程序功能分解

图3程序设计语言文法的面向对象表示

编译系统可能是所有软件系统中最复杂的系统之一,通过本课程实践环节的教学,还可以帮助学生掌握一些大、中型软件设计的技术和技巧,提高学生面向对象软件开发的综合能力。

传统的编译原理课程往往要求学生自己实现一个词法分析程序;实现一个基于递归子程序递归下降分析程序或基于预测分析表的语法分析程序;为某虚拟机(例如PL/0虚拟机)生成代码;对教学模型(例如PL/0)进行扩充,写出完整的编译程序等。且在此过程中学生可以借助词法分析自动生成程序Lex和语法分析自动生成程序Yacc进行有关实验。我们要求学生通过对教学模型的分析,能够在机器上动手实现一个小的编译系统,以加深对编译整个过程的一致性、连贯性、整体性的理解。

一旦我们的讨论对象改变为对象式语言,则其编译程序语法和词法分析的自动生成不能再采用Lex、Yacc这类工具了,需要改用JavaCC(JavaCompilerCompiler)或SableCC等,它们都能生成Java语言代码;或者使用Jikespg(Jikespasergernerator),它生成C++代码。

我们初步制定了本课程的实践环节,它主要分四个层次:

(1)借助JavaCC或SableCC等工具让学生自动生成小语言的词法分析和语法分析程序。这个实验的目的是教会学生关于词法分析和语法分析的自动生成,同时弄清这些工具生成出来的代码的程序结构,特别是面向对象的类结构。

(2)为上面生成的语法树添加语义动作,完成生成代码的工作。这个实验的目的是让学生理解如何在抽象语法树上添加语义动作,理解为虚拟机生成代码的知识。

(3)扩展教学模型,如MiniJava,为其增加一些语言成分,如有关语句等,然后为其构造完整的编译程序。这一实验让学生把握编译的总体,弄清各部分之间的关系。

(4)逐步构造面向对象的编译程序类库,使得“编写”编译程序逐步走向“组装”编译程序。

5结束语

编译原理论文第3篇

关键词:变译理论;变通手法;研究方向

一、引言

随着全球化的发展,翻译工作的重要性也日益凸显。很多人认为翻译只是一种实践活动,包括很多MTI的学生都是只重视翻译实践,而忽视了翻译理论的重要性。笔者认为,翻译理论是翻译实践活动的基础且具有指导作用,应该予以充分的重视。那么,翻译理论有哪些呢?严复的“信达雅”、克里斯蒂娜・诺德的“功能翻译理论”、尤金・奈达的“功能对等理论”、泰特勒的翻译三原则,等等原则。上述翻译理论研究得较为完备,笔者在本文中侧重介绍变译理论。变译理论作为新兴的一种翻译理论由黄忠廉于上世纪末提出,在当今的翻译界是具有活力的理论之一。《翻译理论与实务丛书》主编罗进德对变译理论的评价颇高,“掌握变译方法是新时代译者必备的才能”。

变译观的演进大致可分为以下五个阶段:对变译的感性认识,变译观念的萌芽,变译概念的雏形,变译观念的发展和变译观的确定(黄忠廉,2002)。

二、变译与变译理论

首先,是对变译的界定,何为“变译”?黄忠廉(2011)明确指出“变译是相对于全译提出的”。所以界定变译的前提条件是了解全译,全译是指译者将原语文化信息转化为译语以求风格极似的翻译活动。“变译与全译相对而立的依据是翻译中对原作保留程度的完整性”(黄忠廉,2011)。从这种说法中可以得知,变译是非完整性翻译,是译者根据特定条件下特定读者的特殊需求,采用多种变通手段摄取原作有关内容的翻译活动。较之于全译,变译的手段多样,这使得变译具有与全译不同的特效。黄忠廉(2002)指出全译与变译的主要区别分为五个方面:首先,信息内容。同全译相比,变译文在内容信息上: 可少于全译,如摘译等;可约等于或少于全译,如编译,原作材料不变,但组织不当或不适合读者口味,或没有标题,译者加上标题,显出层次,便于读者阅读,信息内容未变,但功能和效果优化了;还可大于全译,如译写、译评、阐译等,在内容上较原作有扩充,有拓展,有增加。其次,宏观形式。一般而言,宏观形式上的变最明显的表现为体裁、结构的变化,在量或规模上,原作形式或缩水,或膨胀,甚至是面目全非,原作宏观或微观形式不见了踪影。再次,译者投入。译者的投入可分为时间、智力和知识的投入。全译以较多的人力物力财力投入可能讨不到好结果,变译则以较小或相当的投入追求较大较准的产出,同样面对原作,全译者处处投入,事事要为,变译者可以说“不”,有所译,有所不译。然后,信息质。经变译者定向取舍、用心改造后翻译出来的文字在信息的质上一般要胜过全译。最后,译作之比。“译”在此指全译,“作”指译者(有时兼作者)的创作,是一种独创性劳动。在全译中译者的创造性是有限的;在变译里,一旦需要和可能,译者可以尽情发挥,“作”的比例加大。

其次,何为“变译理论”?对变译理论的阐释可以分为两部分。“简单地说,变译理论是研究变译的理论。具体地说,变译理论是从变译实践中概括出来的反映变译的本质和规律的科学原理和思想体系,它以变译为研究对象,研究变译过程的一般特点和规律,寻求适于一切变译方法的一般原理和方法”(黄忠廉,2011)。笔者更A向于第二种阐释。

三、变译的七种变通手段与变译十二法

该部分主要对黄忠廉于2002年和2014年的研究成果进行综述。

(一)变译的七种变通手段

1.增

增指在原作基础上信息的增加。增加的方式可分为释、评、写三种。

释。即阐释,是在译文中对原作中某部分内容的解释,包括释典(解释典故)、释古(把古代的解释为现代的)、释义(解释词义或文义)、释疑(解释疑难点)等。

评。即评论,是对所译的内容进行批语或发表议论,包括评估(评价和估计所译的内容)、评价(评定所译内容的价值的高低)、评介(评价所译内容并介绍相关情况)、评判(判定所译内容的是与非、优与劣等)、评析(评价所译内容并加以分析)等。

写。写指在译作中添写与所译部分相关的内容。按空间位置可分:译前写,译后写和译中写。

2.减

减是总体上去掉原作中在译者看来读者所不需要的信息内容,有时是去掉原作中的残枝败叶,有时是挤掉多余的水分,在变译中表现为对原作的取舍。减的目的在于以小见大,让有用信息的价值充分展示出来。

3.编

编即编辑,指将原作内容条理化、有序化,使之更完美更精致的行为。它包括:编选(从原作中选取一部分加以整理)、编排(按一定的顺序将原作内容重新排列先后)、编写(将原作提供的材料加以整理,写成译语文字)等。

4.述

述,取“述而不作”中“述”的含义,包括叙述(即用译语将原文内容写下或说出),也可以是转述或复述,不斤斤于字比句次,只求把原作的主要内容或部分内容用自己的话传达出来,原作形式基本遭到破坏。述基于原作内容,改变原作的表达形式,一律用叙述语言传达内容,所以有摘有编,更有概括。舍细节,求粗略是其特征。

5.缩

“缩”则是压缩,是对原作内容的浓缩,是比“述”更凝炼地用译语将原作压缩的行为。它使信息量由大变小,远小于原作,篇幅由长变短。

6.并

并指合并,是将原作中同类或有先后逻辑关系的两个及其以上的部分结合到一起的变通手段。相关联的部分可能是句、句群、段、篇、章,甚至是书。

7.改

改即改变,使原作发生明显的变化,改换了内容或形式,包括改换(改掉原作中的内容或形式,换成适合译语读者的内容或形式)、改编(据原作内容采用另一种体裁重写)和改造(修改整个原作,以便整个译作适合新的要求)等。(黄忠廉,2002)

(二)变译十二法

摘译是根据译者需求,选取原文主要内容或译文读者感兴趣的部分内容的变译方法; 编译是依据译者特定需求,对原作加工整理然后翻译成文的变译方法; 译述即译者用自己的语言转述或复述原作主要内容或部分内容的变译方法; 缩译即压缩性翻译,以较小的篇幅再现原作主干内容的变译方法; 综述即综合叙述,对某一时期某专题众多外文文献加以汇总、分析,并阐述其研究进展情况的综合陈述; 述评即对众多外文文献进行综述进而加以分析、总结和评论的变译方法;译评即将原作译后再结合其内容展开评论的变译方法;译写即翻译原作全部或部分主要内容加以评论、阐释和扩展的变译方法; 改译即根据特定要求改变原作形式或部分内容,甚至原作风格的变译方法; 阐译即在译者对译文进行全译或变译后再加以阐释的变译方法; 参译即译者摄取外国文献中部分内容并译入创作,引译为据的变译方法; 仿作即仿照原作或译语作品的内容、形式、风格进行译语创作的变译方法。(黄忠廉,李明达,2014)

笔者认为,变译七法是变译十二法的基础,后者是前者的补充和发展。黄忠廉于2002年提出的变译七法为变译理论构建了良好框架,不仅为学者研究学习提供了清晰的思路,同时也为学者的日后拓展和补充奠定了基础。与译七法相比,黄忠廉和李明达于2014年提出的变译十二法更为全面与完备,变译十二法囊括了更多的变译手段,拓展了变译理论的应用范围。

四、变译理论研究方向

(一)十七个研究方向

黄忠廉(2002)在《变译理论:一种全新的翻译理论》曾用大量篇幅对变译理论可以从哪些方面进行研究给出了多种方向。

第一,变译的实质,研究变译的本质特征。第二,变译的系统,涉及变译的诸多要素。第三,变通的手段,研究手段及其分类理据。第四,变译的方法,主讲方法论。第五,变译的体系,研究十一种变译方法间的关系。第六,变译的单位,研究与全译不同的语篇单位。第七,变译的章法,研究变译中的篇章结构调整、版权问题和署名间题、原作的著录方式,是译是著的标注向题等。第八,变译的过程,揭示变译的宏、徽观过程。第九,变译的机制,研究变译各要素相互作用的机理;运作过程中有何内在的机制,从读者到变译作品与传统全译不同的机制。第十,变译的特效,研究变译多、快、好、省、有的放矢的效果;多――信息比重大;快――传播速度快;好――信息质量高;省――省时省篇幅;有的放矢―针对性强。第十一,变译的规律,探讨变译的内在规律:译者妥协律、肯定否定规律、整体优化律、循序渐进律、信息失恒律、质量递变律。第十二,变译的标准,变译的标准应根据其实质来定,根据变译的特性来定。总的标准是它是否满足了特定条件下特定读者的特殊需求,具体标准包括:特定读者的定位明确;变通手段的选定准确;变译方法的运用正确;原作的使用价值突出;译者的作用发挥恰当;变译效果的追求到位。第十三,变译的范围,确立不同变译方法所适应的不同文体范围,依次排列为:文艺

第十五,变译读者论,研究变译因读者而变:变译读者的摄取心态;变译读者的有效需求;变译读者的需求调查。第十六,变译译者论,研究变译由译者来变:对待原作的态度;对能力的高要求;译者的服务意识;译者的效率追求。第十七,变译客体论,研究对原作的施变:原作的可变动性;原作的使用价值;变译的供需矛盾。

笔者将这些研究方向分为两大部分,第一部分包括前十四个方向,这部分主要是以变译这个客观的理论为研究对象;第二部分包括最后三个方向,该部分主要是以译者和读者两个主观角度对变译理论进行研究。

(二)对比性研究方向

采用不同的分类标准和分类角度,对分类的结果会产生巨大的影响,即使是同一实质的事物,也会产生形式和内容上的不同。黄忠廉(2011)在《变译理论研究类型考》中采取了与以往不同的方式和标准,对变译理论的研究方向进行了第二次划分。

第一,现象研究与本质研究。变译研究面临着两个问题: 一是创建理论与方法; 二是弄清中外变译事实。第二,过程研究与结果研究。变译过程研究侧重于变译过程中所发生的一切问题,结果研究则侧重于变译产品,前者属于本体研究;后者属于翻译文学或翻译文化研究。第三,历史研究与现实研究。历史研究主要研究变译发展的演变及其规律,是对变译的纵向研究;现实研究主要研究当前鲜活的变译现象,对变译展开横向研究。第四,应用研究与纯理研究。产生于事实的理论,首先可形成应用理论,它与实践直接联系,具有可操作性。应用研究包括变译现象阐释考察、变译方法论问题、变译实践论研究、变译教学与变译人才培养问题等。应用理论进一步提升抽象,成为普通理论;纯理研究包括: 对变译现象产生的背景研究,对变译理论内涵的研究,变译理论产生的理据的研究,对变译理论的学科思考等,其他学科理论学说对变译理论的关照。第五,上向研究与下向研究。上向研究就是归纳研究。归纳有两种含义: 一是事实归类; 二是理论推理,从事实中概括出一般原理。既然是归纳研究,就要对变译事实的采集尽量周全;下向研究,即演绎研究。上向研究便于弄清事实,总结规律; 下向研究便于完善规律,建立方法、理论和学科的体系。第六,专题研究与学科研究。专题体系可分为小专题和大专题,单一性专题体系和集合性专题体系;学科体系是专题体系的扩大,是专题体系发展的必然结果。从单一性专题研究到集合性专题研究,再到学科研究,是一门学科成熟发展的逻辑过程。第七,笼统研究与具体研究。笼统研究包括两种,一是对研究对象认识不清,二是有意识地不分清;具体研究一般是小题大作,将一个问题说透论深。第八,潜性研究与显性研究。第九,综合研究与分类研究。综合研究以人类的所有变译为研究对象,重在探讨变译的共性和变译的本质,从而形成变译的普遍理论;分类研究以某一类变译现象为研究对象,形成某领域独有的某类独特变译的规律与理论。第十,译介研究与原创研究。译介研究是对变译研究成果的翻译与介绍;原创性研究要求研究者具有平视西方译论与尊重汉外互译事实的心态,有独立的研究立场。

笔者认为该种研究方向的分类更为全面系统,较之于前面的分类,此种更具理性,更易于操作。前面的分类为初期的分类,虽然概括很详尽,但是条理性则逊色于后面的分类。

五、变译理论的发展与实践

变译理论仍然是一个新兴的翻译理论,一直处于发展和实践的过程中。

黄忠廉(2002)在《释“变译”》中由变译的各种属性,对其逐一诠释,具体而言有五个角度:由译者来变,因读者而变,七种变通法,摄取的战略,对原作施变。同年,还对变译的性质及其宏观特征进行了整理。2009年就变译平行语料库的相关问题以严复《天演论》为例做了实践分析。刘丽芬和黄忠廉(2001)就编译的基本原则进行了探索与梳理。

除了黄忠廉自己的探索和发展,变译理论也被很多学者广泛地应用。这些对变译理论的探索研究大致分为两类:第一类为理论的探索研究,代表有周青(2005)、徐朝友(2006)、厉平(2014)、焦鹏帅(2014)、李秀云(2015),等;第二类是实践的探索研究,代表有王皓(2006)、高云(2015)、顾伟(2010)、葛婷婷(2015)、毛莹(2015)、翟韬(2015)、包玉慧、王曦和陈锋(2015)、罗建生、李敏杰(2015),等。

六、结语

变译理论和变译研究的意义在于“多快好省、有的放矢地吸收国外信息。多――单位信息量大;快――传播速度高;好――信息最有效;省――省文本篇幅、省译者和读者的时间;有的放矢是指以最充分最直接地满足(特定)读者对象为目的”(黄忠廉,1999)。变译理论是新兴的翻译理论具有很强的生命力和良好的发展前景。

参考文献:

[1]包玉慧,王曦,陈锋.从中医术语角度看《红楼梦》的文化隔膜与霍氏的文化变译[J].中国科技术语,2015,05:39- 42.

[2]高云.变译理论视角下美剧的字幕翻译之初探――以《摩登家庭》为例[J].英语广场,2015,05:117-118.

[3]葛婷婷.变译理论指导下的专业生僻词汇的翻译――以《第十二届全国人大一次会议新闻会》为例[J].中小企业管理与科技(上旬刊),2015,12:168.

[4]顾伟.变译理论指导下的旅游网站汉英翻译[J].语文学刊(外语教育与教学),2010,10:73-75+101.

[5]黄忠廉.变译(翻译变体)论[J].外语学刊,1999,03:80-83.

[6]黄忠廉.变译理论:一种全新的翻译理论[J].国外外语教学,2002,01:19-22.

[7]黄忠廉.变译的七种变通手段[J].外语学刊,2002,01:93- 96.

[8]黄忠廉.变译全译:一对新的翻译范畴[J].上海科技翻译,2002,03:5-7.

[9]黄忠廉.释“变译”[J].外语研究,2002,03:66-68+60.

[10]黄忠廉.变译的性质及其宏观特征[J].四川外语学院学报,2002,05:108-110.

[11]黄忠廉.变译观的演进[J].外语与外语教学,2002,08: 46-48.

[12]S忠廉.变译平行语料库概说――以严复《天演论》为例[J].外语学刊,2009,01:116-119.

[13]黄忠廉.变译理论研究类型考[J].外语学刊,2011, 06:101-104.

编译原理论文第4篇

关键词:编译原理;教学实践;学习兴趣;应用领域

文章编号:1672-5913(2013)18-0062-04

中图分类号:G642

0 引言

编译原理课程内容丰富,而且涉及形式文法和语言、有穷自动机等抽象内容,学生理解和掌握有一定难度。加上编译程序是系统软件,让不少学生又增添了一层畏惧,甚至有的学生戏称该课程是软件系列课程中最难学的“天书”。部分学校单纯从“直接有用性”角度考虑,将该课程由必修改为选修,甚至取消该课程,这些做法从另一个角度助推了学生的畏难情绪,也打击了教师的教学研究积极性。

为打破这种尴尬局面,解除学生的学习心理障碍,我们引导学生探索编译的原理、方法和技术在各应用领域中的使用,并以“应用领域编译器”的构建作为课程实践内容。这些做法,既改变了编译的“抽象”印象,激发学生学习兴趣,又让学生在具体应用问题的求解中,从系统的层面重新认识此前程序设计、数据结构与算法等课程介绍的程序、算法,在实践中体会各种概念、原理和技术的实质,有助于学生深刻体验计算机问题求解的内涵,建立计算机系统观。

1 基于领域应用的研究性教学实践

编译原理作为本科生课程,其主要目标是希望学生掌握编译原理中的基本概念、理论和方法,在系统级上再认识程序和算法,提升学生的计算机问题求解的水平,增强其系统能力,体验实现自动计算的乐趣。

如何帮助学生克服对编译原理课程的恐惧,激发学生的学习兴趣,达到课程的教学目的,是任课教师需要解决的重要问题。

研究表明:正情绪(如兴趣)有利于智力操作,负情绪(如痛苦)不利于智力操作。为提高学生学习编译原理的“正情绪”,我们在实践中逐步摸索出了基于领域应用的编译原理课程研究型教学方法,大大减轻了学生对编译课程的畏惧感,提高了学习兴趣,改善了教学效果。

1.1 以领域应用为导向,激发学习兴趣

编译程序是系统软件。在有限的学科知识背景下,一些学生认为自己将来不会从事系统软件开发,编译原理课程的学习没有实际意义,因而没有学习兴趣。另一部分学生则认为涉及系统软件的知识是复杂的、晦涩难懂的,由于惧怕,在心理上给自己增加了学习障碍。

建构主义学习理论提倡以学习者为中心的有意义的学习,认为教师是意义建构的帮助者和促进者,而不是知识的传输者与灌输者。事实也证明“兴趣是最好的老师”,一旦学生的学习兴趣被激发,学生对问题的钻研深度和取得的成果往往会超过老师。因此,在编译原理的教学过程中,我们以激发学生的学习兴趣为切入点,尝试探究式的教学方法。

实际上,编译原理课程讲述的是通用的问题求解方法,是针对各个具体应用领域中问题共性的求解方法,是从“类”的角度出发的计算方法,一旦掌握,可以应用于各领域具体问题的“实例”问题求解,效率更高,方法更通用。

现实中,很多应用领域都在使用编译的原理、技术和方法。例如,从程序设计语言实现的角度得到的词法分析、语法分析、语义分析的方法,还有中问代码生成、目标代码生成的思想,在自然语言处理领域有很好的应用实例;程序变换的思想在软件自动生成方面得到体现;网络环境下的搜索引擎也用到编译的原理和技术。学生受限于已掌握的知识,缺少实际应用的经验,误以为编译原理课程介绍的内容就只是用于作为系统程序的编译程序的构建,畏惧心理加上缺乏兴趣,使得这门课程的学习难度无形中加大。

在课程的开始阶段,我们让学生选择一个自己感兴趣的应用领域。随着课程的进行,引导学生分析应用领域中的问题,寻找其与编译问题的相似性,发现二者的联系,思考编译中的原理、方法和技术如何与这些应用领域中问题求解方法相结合。当面对自己感兴趣的应用领域时,学生的学习动力就不可估量了。我们再引导学生将这些应用领域问题的求解转换成“类”的问题描述,思考这些“类问题”如何用课堂所学的编译方法予以求解。

举例来说,在最近一轮的编译原理课程教学中,学生们就从多个非程序设计语言翻译的角度探索了编译技术的应用,涉及网络传输协议解析、文档编辑器、测试自动化、文档排版、作业自动批改、汉语自然语言处理、恶意脚本查杀、逻辑门电路绘制、汉语英语翻译、自动阅卷系统、火车票购票、中文识别、邮件地址识别、模式识别等诸多非编译问题。

在探索了编译理论和技术在不同领域的可能应用后,我们又指导学生将心得撰写成研究型小论文。虽然大多数论文还略显幼稚,但论文的撰写过程确实是对研究型学习的再一次总结和升华。

当学生们看到编译的知识在如此众多的非编译领域同样有着大量的用途时,他们不再觉得编译原理课程的内容与自己未来的学习和工作无关,反而希望能更好地学习和理解编译原理课程介绍的原理、方法和技术,以便为将来的发展打好基础。

在兴趣的驱使下,编译原理课程的学习不再枯燥晦涩,即使面对形式化描述的抽象内容,学生也不再畏惧;同时,编译原理课程的教学目的也得以实现。

1.2 构建应用领域编译器,提高实习参与度

传统的编译原理课程实习中,学生在掌握基本原理的基础上,完成一个受限程序设计语言的词法分析程序、语法分析程序和语义分析与中间代码生成程序。虽然学生可以自行选择语言完成实现,但编译程序的“系统程序”的地位,使学生整体学习兴趣受到影响,而对课程实践的兴趣不足,又直接影响了对理论知识的理解和深入。

建构主义的学习观认为:学习不是由教师把知识简单地传递给学生,而是由学生自己建构知识的过程;学生不是简单被动地接收信息,而是主动地建构知识的意义,这种建构是无法由他人来代替的。单纯的课堂听课,没有真正完成知识的掌握和转化。课堂听懂了但课后不会做题或实习就是一个很好的证明。课堂听课过程中,学生是运用自己已有的知识,来衡量教师当前讲述内容的合理性,教师当前所讲述内容并未转化为学生已有知识体系中的一部分。所谓“课堂听瞳了”,只是学生使用已有知识判断出教师所讲内容“合理”而已。只有当教师所讲内容真正转化成学生知识体系中的一部分时,做题或实习才不会困难。所以,习题和实习是理论课程学习的重要实践环节,在编译原理这门课程中更是如此。

我们除了在课堂教学中引导学生探究编译原理和技术在非编译领域的应用,习作研究型小论文外,还在课程实习环节采用构建“应用领域编译器”作为实习题目,以提高学生的实习兴趣和参与度。

编译原理课程的教学目的是培养学生在系统级别上重新认识程序和算法。我们采用循序渐进的引导,培养学生从“类”的层面逐步完成应用领域“实例”问题的认识、分析、设计和系统实现。

1)以能力确定选题。

并非所有的学生都适合选择程序设计语言以外的应用领域问题作为实习题目。我们让学生根据自己的能力选择合适的选题。

普通层次的学生,要求其掌握最基本的方法和技术,而不被应用问题本身的复杂性牵扯太多精力。我们按照传统编译原理课程实习的做法,推荐一个受限的程序设计语言(包含语言的若干基本成分,如表达式、赋值语句、If语句、while语句等),学生可选实际程序设计语言(如C语言)的子集,也可由学生自行设计一个小语言,要求实现该受限语言编译程序的词法分析程序、语法分析程序、语义分析和中间代码生成程序,并且每个程序的输入、输出均以文件形式存放,前一阶段的输出可以作为后一阶段的输入。虽然并不是一个完整的编译器,但是编译程序工作过程的主要环节都得到模拟,而且各部分的共同作用也有助于理解编译程序的整体架构,同样可以达到掌握主要编译技术的目的。

对于学习能力较强的学生,我们建议其选择一个自己感兴趣的应用领域问题,采用编译程序模型化计算的思想,实现一个应用领域编译器。至于具体的实现过程,则随着课程的进度,逐步引导学生从“问题类求解”的层面定义问题,并完成分析、设计和系统实现。

2)渐进式构建引导。

随着课堂内容的进行,我们采用渐进式构建的方法,引导学生逐步实现应用领域编译器,其实施过程如图1所示。

(1)定义领域对象。确定应用领域后,引导学生分析领域问题处理对象的构成特点,并据此构造领域问题处理对象的生成文法。

(2)确定领域的“词”。引导学生分析和认识应用领域中的“词”和“词法分析”的工作内容。在应用领域中,“词”是构成问题对象的最小处理单位。明白了“词”的含义,“词法分析”就是识别出这些最基本的单位,其构建完全和程序设计语言词法分析程序的设计与实现一样。

(3)确定领域“语法成分”。引导学生分析和识别应用领域的“语法成分”和“语法分析”工作内容。应用领域中的“语法成分”是被处理对象的不同层次的构成单位,“语法分析”就是分析领域被处理对象的构成,可以选用编译原理课程中的一种语法分析方法予以实现。

(4)确定领域“语义”和“中间代码”。这里的“语义”和“中间代码”依赖于领域问题的具体应用,需要引导学生分析不同领域中问题求解的目的,从而得出应用领域的主要操作——“语义分析”的内容。

(5)确定领域“目标代码”。其内容也依赖于领域中的具体应用。

当实习全部完成后,学生体验到了从词法分析、语法分析、语义分析和中问代码生成、目标代码生成的所有环节,这实质上完成了一个应用领域编译器,实践过程覆盖了课程教学目标要求学生掌握的全部内容。

虽然每个应用领域系统不必完全按照上述方法实现,但是按照上述方法完成系统后,我们引导学生分析该方法的好处:这样实现的系统可以略作修改甚至不作修改就能处理该领域的同类型问题,可以大大提高软件的可移植性,减少软件开发的工作量。主要原因就是按照编译的方法,是从“问题类”的角度看问题,从系统的角度分析、设计和实现问题的求解,因此最终实现的系统可以适用于满足“类”特征的所有“实例”问题。

在建构主义学习理论指导下,我们以激发学生的学习兴趣为切人点,使课程学习与具体应用领域相结合,让学生体会到编译原理和技术的实用性,大大提高其学习参与度;同时注重引导学生对问题求解基本思想、方法的探讨,从确定领域问题,到词法分析、语法分析、语义分析、目标代码生成的每一步求解思路分析,到应用具体编译技术实现求解算法,让学生明白怎样从“实例”问题的计算求解过渡到问题“类”计算,锻炼了学生抽象问题描述和解决问题的能力:而整个系统的实现涉及不同层次的抽象和问题处理,达到了培养学生系统能力的目的。一些学生在课程学习结束后,体会到了学以致用的乐趣,还主动与教师谈论研究型论文和应用领域编译器的改进设想。

通过这样的实践,学生对文法、语言的实际意义有了更广泛的认识,而不再局限在程序设计语言这个范围内,真正体会到形式文法和语言只是具体问题的抽象反映,从而更深入地理解了计算机学科问题求解的抽象描述和处理这一实质。

2 结语

编译程序的“系统程序”地位造成的陌生感、编译原理课程自身内容的复杂性,给学生学习该课程带来了一定的障碍。我们在编译原理课程的教学实践中,针对该课程学习的最大问题——陌生与抽象,以非编译的应用领域问题求解为切入点,以学生对应用领域问题的学习兴趣提高学生的学习和实践参与度,通过引导学生在“类”的层面尝试领域“实例”问题的求解,使学生体验了计算机求解的问题抽象描述与处理方法,达到了课程的教学目的。

参考文献:

[1]蒋宗礼,编译课程教材建设[J],计算机教育,2007(6):74-76

[2]蒋宗礼,“编译原理”教学设计[J],计算机教育,2008(2):26-30

[3]徐旭东,蒋宗礼,论编译原理在程序设计类课程建设中的重要作用[J],计算机教育,2011(9):27-28,32

编译原理论文第5篇

关键词:编译程序;教学改革;对象式程序设计;Java

1引言

编译原理课程是高校计算机类专业的重要基础和骨干课程。编译原理对计算机专业的学生的重要性与高等数学对理科学生的重要性几乎可以相提并论。同时,由于这门课程涉及其他多门课程的知识,使得它成为大学阶段中最难学的课程之一。

从表面上看,编译程序是将高级语言源程序翻译成低级语言程序,但编译程序构造的基本原理和技术也广泛应用于一般软件的设计和实现,其中的设计思想、算法、思维方式和技术都可能会对学生今后的职业发展产生比较大的影响。

当今,程序设计已经基本上从传统的过程式转向对象式,并且正在从对象式转向组件型。这其实是程序设计范型的变迁,是在计算机技术背景下认识世界的观点的变化:过程式将完成事务看成是一系列的步骤,而对象式却将世界看成是由一系列对象组成的,这些对象之间交互合作完成特定的事务。从过程式到对象式,有着质的变化,而非一般的修改和完善,由此带来了语言(算法描述工具)的变化。编程语言影响思维,面向对象的思维方法又促进了编程语言的发展。

目前,程序设计的一些后继课程,如数据结构等都进行了同步跟进,出现了诸如用C++或Java描述的数据结构教材。但编译原理课程却没有及时跟进,上述改变基本上没有反映到编译原理课程中。这门课程近20年来基本上没有大的变化,教学内容仍然是基于过程式语言展开的,编译算法和模型描述是用PASCAL语言或者C语言。虽然个别教材加入了少量关于对象式语言编译技术的内容,那也是稍加点缀而已,作用不大。这就造成了一种奇怪的现象:对象式语言已经成了高校计算机教学的主流语言,社会上大量使用的也是对象式语言,而我们的编译原理教学仍然沿袭旧的一套。这种“状态”严重地脱离了计算机技术的发展和社会的实际需要,因此需要进行“调态”,其根本做法是“转型”,即将本课程的讨论对象从过程式语言转到对象式语言。

国外近年关于编译原理方面的新教材已经有了重要改变,不再连篇累牍地讨论那些已经过时的内容,增加了许多新的内容。其中一个重大改变是出现了用对象式语言描述编译算法和教学模型的编译原理教材,如:用Java语言描述的编译原理教材,且其教学模型为MiniJava。

这种改变也涉及到课程上机实践。众所周知,编译原理课程的学术性和实践性都很强:学术性是这门课程的生命所在,实践性是这门课程的活力所在。因而本课程的上机实践也要作同步调整。

2课程内容围绕对象式语言展开

研究程序设计语言的语法描述需要有文法理论的支持,老教材中文法、词法分析和语法分析部分内容基本上不需要作什么变动。词法分析主要依赖有穷状态自动机理论,语法分析主要讲述LL方法和LR方法,其他方法略做介绍即可,无需展开讨论。LL方法和LR方法含盖了许多分析技术,理论性和应用性都很强,完全可以代表主流技术。

重要的就是研究对象和教学模型的改变。首先,研究对象将从过程式程序设计语言转到对象式程序设计语言(当然还可以兼顾过程式),例如Java、C++等,围绕实现这类语言的编译实现技术展开讨论。对象式程序设计语言的要素是封装、继承、多态性,在编译实现时都必须仔细考虑。其次,涉及到对象式程序设计语言编译程序教学的模型选择问题。目前传统的教材选择的教学模型有PL/0、TiniC等。实践证明,围绕某个模型展开编译设计技术的讨论,效果是比较好的。课程研究对象和教学模型的改变涉及到调整的章节主要有语法分析、语义分析、代码生成、符号表管理、存贮分配等方面。

一旦我们讨论的模型发生变化,这些章节的内容就要作很大调整。如对象式语言的作用域规则、语言动态特性、模块化封装(类)、类的继承、多态性的实现等,都需要具体的技术来实现,这些都要反映在教材和教学中。

就课程中关于代码生成内容来看,目前Java编译程序生成Java虚拟机(JVM)代码,C#生成MSIL虚拟机代码。这两个虚拟机作为教学模型来说可能比较复杂了一些,在教学中可以选定一个简单的子集;或者在PL/0虚拟机上适当增加一些指令代码,以便于代码生成、存贮分配等部分的讲解。

实践证明,作为教学模型,在教材上提供一个小型语言的编译程序供学生分析和研究,非常有利于加深对基本原理的理解和掌握。这个小型编译程序可以比较小但应该能够说明一些基本问题,例如传统的编译原理课程中选择PL/0编译程序作为教学模型,就收到了比较好的教学效果。在对象式程序设计语言编译原理课程中选择Object-pl/0或者MiniJava作为教学模型是比较恰当的。前者是在传统的PL/0语言上增加类,补充封装、继承、多态性之语言成分得到的;后者是对Java语言进行适当简化得到的,其主要语法描述如图1所示。

图1MiniJava语法

编译原理课程可以围绕此模型展开讨论。国外已经有这类教材出现,并且不少大学已经开始使用。

3用对象式语言描述编译算法和教学模型

本课程中各类编译算法都应该伴随着教学模型的变化,改用对象式语言来描述,如用Java语言描述或者用C++语言描述。其中一个重大的变化是教学模型如MiniJava或Object-pl/0要用对象式语言实现,也就是提出了教学模型的面向对象构造问题,这就比较好地将讨论对象和描述讨论对象的语言统一起来了。国外有的教材就选择了用Java描述MiniJava编译程序。

编译程序是一个重要的中大型软件,传统的编译程序大都是用PASCAL、C等语言描述的(参见图2)。像编译程序这样的中大型程序如何用类这个工具来进行分解,其实是对学生的对象式程序设计能力的一个重要检验。学习用对象式语言来描述编译程序,学生可能会受到一次严格的对象式语言程序设计训练,编译程序如何用类这个工具进行分解,这些类(对象)如何合作完成编译任务,都需要较好的对象式程序设计基础。图3是一个程序设计语言文法的面向对象表示。

传统的编译程序构造主要存在如下一些问题:

(1)传统编译程序试图通过将编译程序根据功能模块分解,而使整个编译程序的复杂性降低。这种方法虽然在一定程度上简化了编译过程。但为了处理大型、复杂且多变的编译程序,仅仅将它按照功能分解成词法分析、语法分析、语义处理和代码生成几个阶段是远远不够的。

(2)传统的编译程序构造中,编译的每个阶段依然是大型、复杂的,且每个阶段内部依然存在复杂的联系,这对编译程序的可维护性没有实际上的改变,反而造成维护困难。

(3)虽然传统的编译程序构造有着丰富的理论基础,也有一些工具诸如Lex、Yacc等,但对一个具体的编译程序的构造仍然要从最基本的描述开始。传统的编译程序构造的功能分解方法缺乏支持复用的良好机制。

总之,过程式程序设计范式存在的问题在编译程序设计中广泛存在。而用对象式程序设计语言来描述编译程序,则对象式程序设计范式带来的好处基本上都能够得到。具体主要表现在:

(1)编译程序效率高。由于面向对象的编译程序构造采用的是语法树构造法,可以得到上下文相关信息,并根据上下文进行语法树的优化,所以生成的代码效率高。

(2)复用方便。由于语法类和具体的语法结构一一对应,所以在复用语法结构时,可以直接得到能被复用的语法类,不需要经过查找过程。

(3)修改方便。由于面向对象方法中的封装和多态等技术的实现,语义处理方法中所用到的数据都是局部数据,因此要做语义修改时,只要继承相应的语法类,并且重载相应的语义处理方法即可,需修改的内容较之传统方法要少。

(4)有利于构造编译程序类库,使得编译程序的构造能够大量复用已有的类,这是更高层次上的复用。

4课程实验的设计

计算机学科是一门技术学科,它虽然有一定的科学的成分,但工程技术的成分更多一些,因此需要加强动手能力的培养。编译原理课程除了注重它的原理性,还必须注重其实践性。学习这门课程时,学生对编译的理解往往只停留在书本的概念上,而不知道怎样把编译理论应用到实际的编译程序设计的实践中。另外,有些学校只将教学内容锁定在文法、词法分析(有穷状态自动机)、语法分析(LL、LR文法)上,以应付学生考研的需要。这些做法使得学生很难掌握这门课程的精髓。

图2传统的编译程序功能分解

图3程序设计语言文法的面向对象表示

编译系统可能是所有软件系统中最复杂的系统之一,通过本课程实践环节的教学,还可以帮助学生掌握一些大、中型软件设计的技术和技巧,提高学生面向对象软件开发的综合能力。

传统的编译原理课程往往要求学生自己实现一个词法分析程序;实现一个基于递归子程序递归下降分析程序或基于预测分析表的语法分析程序;为某虚拟机(例如PL/0虚拟机)生成代码;对教学模型(例如PL/0)进行扩充,写出完整的编译程序等。且在此过程中学生可以借助词法分析自动生成程序Lex和语法分析自动生成程序Yacc进行有关实验。我们要求学生通过对教学模型的分析,能够在机器上动手实现一个小的编译系统,以加深对编译整个过程的一致性、连贯性、整体性的理解。

一旦我们的讨论对象改变为对象式语言,则其编译程序语法和词法分析的自动生成不能再采用Lex、Yacc这类工具了,需要改用JavaCC(JavaCompilerCompiler)或SableCC等,它们都能生成Java语言代码;或者使用Jikespg(Jikespasergernerator),它生成C++代码。

我们初步制定了本课程的实践环节,它主要分四个层次:

(1)借助JavaCC或SableCC等工具让学生自动生成小语言的词法分析和语法分析程序。这个实验的目的是教会学生关于词法分析和语法分析的自动生成,同时弄清这些工具生成出来的代码的程序结构,特别是面向对象的类结构。

(2)为上面生成的语法树添加语义动作,完成生成代码的工作。这个实验的目的是让学生理解如何在抽象语法树上添加语义动作,理解为虚拟机生成代码的知识。

(3)扩展教学模型,如MiniJava,为其增加一些语言成分,如有关语句等,然后为其构造完整的编译程序。这一实验让学生把握编译的总体,弄清各部分之间的关系。

(4)逐步构造面向对象的编译程序类库,使得“编写”编译程序逐步走向“组装”编译程序。

5结束语

对计算机人才的层次结构、知识、能力与素质等方面的要求在很大程度上取决于计算机市场。我们需要与时俱进,适时考虑相应教学体系和内容的改变。依赖过程范性的编译原理课程势必要被依赖对象范性的编译原理课程所取代,这是软件技术发展和社会实际应用的需要。但建立本课程新的课程信念、课程价值、课程技术等尚需时日,需要不断探索和创新。

编译原理课程的改革不仅需要教师付出大量辛勤劳动,及时跟进技术的发展,还需要好的教材、好的课程实验设计。《对象式程序设计语言编译原理》便是我们按照上述思路来编写的教材。

参考文献

[1]中国计算机本科专业发展战略研究报告[J].中国大学教学,2005,5:7-10.

[2]AndrewW.Apple.现代编译器的Java实现[M].北京:电子工业出版社,2004.

[3]DickGruneetc.ModernCompilerDesign[M].JOHNWILEY&SONS,LTD,2002.

编译原理论文第6篇

关键词:编译原理;能力培养;教学

作者简介:张艳(1976-),女,河南南阳人,上海理工大学光电信息与计算机工程学院,讲师。(上海200093)

中图分类号:G642.0     文献标识码:A     文章编号:1007-0079(2012)08-0053-02

从当前的就业情况看,计算机专业的学生在软硬件知识和应用能力上的优势逐渐弱化,在与具备特定行业、应用领域和专业背景的学生竞争就业时,面临的压力越来越大,而在已就业的学生中又少有人从事编译系统的研究和开发工作。所以,“编译原理”作为计算机科学与技术专业的“经典”核心课程的存在价值受到质疑。其实,本科教育解决的是培养学生基本专业能力、可持续发展能力这些本质性的问题,因此,我们要从如何结合专业课程完成学生专业能力的培养与素质的提高这样的角度来看问题。

在大学里,学习一门课程,不能简单、肤浅地看成是对这门课程所含内容的研究、设计和开发,而是关注是否在有限的时间内最有利于学生专业能力的培养。计算机是一门技术性、工程性和应用性很强的学科,有其自身的基础理论支撑体系。“编译原理”课程本身以计算机专业基础知识为载体,含有问题求解的典型思想、技术和方法,整个课程的内容对培养学生的计算思维,程序设计与实现,算法设计与分析,计算机系统的认识、开发和利用等学科基本能力都非常重要。并且,编译技术在计算机体系结构设计、提高软件开发效率与质量的工具开发等方面有着重要的应用。因此,“编译原理”课程不但有存在的价值,而且对于计算机专业学生的能力培养和素质提高有着极其重要的作用和意义。

作为计算机专业的教育工作者,应该结合当前计算机的发展状况,重新认识“编译原理”课程的重要性,并根据当前的教育和就业形势,积极研究、改进“编译原理”课程的教学和实验方法,提高教学效果和质量。

一、明确“编译原理”课程对学生能力培养和素质提高的重要性

从课程体系总体设计看,“编译原理”课程的主要教学目标之一是使学生在系统的级别上重新认识算法和程序,提升学生的系统能力。它是计算机专业课程中最难学的课程,既涉及形式语言和自动机等抽象理论,又是数据结构、程序设计语言、算法和软件设计等知识的综合体现,有效培养了计算机专业学生应具有的计算思维,算法设计与分析,程序设计与实现(硬件和软件实现),系统的认知、分析、开发与应用等四大基本能力。

计算学科问题求解的基本思路是“问题-形式化描述-计算机化”,以抽象、理论、设计为其学科形态。“编译原理”课程中要求学生掌握的包括程序变换基本概念、问题描述和处理方法(自顶向下、自底向上、逐步求精、递归求解,目标驱动,问题分析、问题的抽象与形式化描述,算法设计与实现,系统构建、模块化)等知识、思想和方法,有利于学生养成“问题、形式化描述、计算机化”问题求解的习惯,实现从“实例计算”到“类计算”和“模型计算”的跨越。这其中既有明确的、便于抽象的问题,又有较成熟的理论,而且在限定规模下又容易实现(设计),涉及的是一个比较适当的抽象层面上的数据变换,所以该课程是计算机专业本科生的重要专业技术基础课程。

二、“编译原理”课程“教”与“学”的新思考

目前,在“编译原理”课程教学中,“教”与“学”两方面的问题都很突出:一些抽象的重要理论使学生学习的畏难情绪严重,加上有些人认为毕业后很少有机会参与设计与实现编译系统,使得该课程的“教”与“学”的热情偏低,而适用于新型体系结构及新一代计算机系统的编译器的需求和大量应用,也给“编译原理”课程内容的充实与更新提出更高要求。

作为教师,要让学生深刻认识到:“编译原理”是许多课程知识的集成与实践,能进一步加深对许多专业基础课程知识的理解;编译程序所使用的原理、方法和技术有利于领悟计算机理论的精髓,在非编译系统的实际应用中也发挥着很大作用;学习编译对今后从事应用软件,语言开发平台、编译系统甚至操作系统的开发等工作非常有益。

实践证明,如果首先让学生认识到课程内容的重要性,再辅之以合适的教学方法和教学手段,是不难取得好的教学效果的。根据笔者的“编译原理”课程教学经验,认为对于该课程的设置和教学可以从以下几个角度来开展。

1.科学设置课程

对于“编译原理”课程的设置问题,可以根据本科院校自身办学宗旨,从普通高校本科、重点高校本科和研究生阶段教育三个层次来考虑教学目标和培养要求等因素,在总学时的限制下,实现总目标的最佳课程。因此,可以考虑以下2种模式。

(1)课程分解模式。分为:“编译技术”(必修),介绍为满足基本应用而需要学生掌握的基础知识、方法和技术,以达到语言转换和实现理论基础介绍的目的;“编译理论”(选修),主要偏重于介绍形式化等原理性的深层次内容,方便有进一步深造需要的学生学习。

(2)内容分解模式。不单独设置一门“编译原理”课程,根据深浅和涉及到的具体问题,将与其他课程相关的内容分解到不同的课程中去,使学生在相关课程的学习中逐步掌握相关知识。这和前者比有一定难度:一是课程难分解,课程内容分解后与其他课程内容的重新整合在短时期内难做到科学分解与组织;二是增加了其他课程授课教师的工作量与难度。

2.优化教学内容

教师还要坚持教学与科研相结合,将最新的教改和科研成果引入教学,将经典编译理论与现代编译技术有机地结合起来。例如,可以将嵌入式编译器、分布并行编译器、多核编译器以及适应新体系结构及新一代计算机系统编译器的研究及其研究结果迅速充实到“编译原理”课程中。此外,还可以向学生介绍编译技术在人工智能、并行计算、自然语言处理等领域里的具体应用,为后续课程做好铺垫。

3.用实例演示来形象化抽象理论

学生学习“编译原理”课程的最大困难是其较为抽象,要获得好的教学效果,就要将抽象理论形象化。改革教学方法,提倡互动式、研讨式和案例式等教学方法。一方面,可以通过实例类比,例如,用自然语言的翻译过程来类比编译程序执行高级程序设计语言的翻译过程。另一方面,教师可以借助多媒体手段,把抽象的原理用动画、图像等形象化的方式展示,便于学生的理解。同时,还可以向学生推荐网上优秀的“编译原理”课程教学网站、电子书等资源,拓宽学生视野,培养和激发学生学习兴趣。

4.把握联系,启发学生积极思维

在教学过程中,充分考虑“编译原理”课程与数据结构、计算机组成原理、操作系统、算法分析与设计等先修课程之间的内在联系,不断深入和强化,以加强课程的系统性,培养学生的全局观。同时还要把握编译过程各个功能阶段的内在联系与规律,有目的地设计问题,有意义地提出问题,通过问题把编译原理中的理论难点、抽象概念引导出来。

三、重视实验,建立行之有效的实验教学方法

设计和组织良好的实践教学环节可以使“编译原理”课程获得良好的教学效果。现在很多高校都增加了实验学时,并独立计算实验成绩。我们在借鉴兄弟院校和国外经验的基础上,摸索出验证性实验加综合设计性实验的2阶段实验教学模式,各高校可根据自己的教学目标和培养要求来选择实施。

1.验证性实验

这类实验主要是为配合配合课堂授课内容,由教师按编译原理授课顺序,提供同步的若干验证性实验题目,让学生逐个完成相关子模块,逐步扩大完善整个编译程序。这样循序渐进地完成实验,不仅增加了学生的成就感和自信心,而且使他们养成扎实的作风,使学练互动,激发学生学习兴趣和积极性。而作为教师,则要做好组织、监督和解惑工作,帮助学生掌握编译系统主要技术、算法的理解和设计,引导学生从整体上把握编译系统的结构和各子系统之间的协调工作。

2.综合设计性实验

一定规模的综合设计性实验训练是保证实践教学效果必不可少的环节。我们可以让学生以小组(由4~5名成员)为单位结合软件工程课程实验的环节完成一个规模适度的编译程序开发。在实际操作时,可根据验证性实验阶段的情况,把学生分成不同层次的小组,由他们选择适合自己水平的不同的实验题目。每组遵循完整的编译器开发方式,融入软件工程的思想,由大家推举的组长分工、协调完成任务。这样,不仅能让每个学生体验从分析设计、编码测试到交付维护的软件开发全过程,还提高了他们的工程和团队意识以及开发大型软件的协调结构设计能力。实验结束时,教师要求学生以演示系统、答辩的方式公布实验成果,以便公正评分。

四、结论

总之,“编译原理”课程很好地体现了计算机专业课程的系统性、完整性、科学性和原理性,对培养学生的专业能力和提高他们的专业素质起到关键的作用。

在新环境和新形势下,作为专业课教师,首先,要认清“编译原理”课程存在的必要性和重要性;其次,必须改革理论教学和实验教学的方法,激发学生学习兴趣和积极性;最后,必须展开新编译方法和新编译技术的研究,并将研究结果迅速充实到“编译原理”课程中。在计算机专业课程的教学道路上,我们任重而道远。

参考文献:

[1]教育部高等学校计算机科学与技术教学指导委员会.高等学校计算机科学与技术专业人才专业能力构成与培养[M].北京:机械工业出版社,2010.

[2]霍欢,彭敦陆,张艳.“编译原理”课程的教学研究[J].计算机教育,2009,(23):26-28.

[3]张昱,陈意云.编译原理课程实践改革探索[J].计算机教育,2008,(8):24-26.

[4]蒋宗礼.谈高水平计算机人才的培养[J].中国大学教学,2005,(9):

编译原理论文第7篇

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

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)内容分解式

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

编译原理论文第8篇

关键词:翻译文学 民族文学 外国文学 归属 谢天振 独立

中图分类号:I206 文献标识码: C 文章编号:1672-1578(2013)05-0257-02

译介学的显著发展使学术界对译者和译本的地位日益关注,基于此,谢教授在其《翻译文学――争取承认的文学》《翻译文学当然是中国文学的组成部分》等论文及《译介学》《译介学导论》等专著中反复重申了“翻译文学应归属民族文学”这一观点并进行了详细的论证。谢教授认为,非艺术范畴的译作讲求忠实、准确,归属与原作一致;艺术范畴的译作具有再创造性质,译者理应归于译本作者这一位置,又因为“判断一部作品的国籍的依据就是该作品作者的国籍”,[1]所以“翻译文学是文学作品的一种独立的存在形式”“是民族文学或国别文学的一部分”。[2]这样的观点得到许多学术界的人士认同,“谢天振的主张或有望解决翻译文学‘妾身未明’的问题”[3]“翻译文学是国内文学的一部

分”[4]。但在笔者看来,谢教授的“翻译文学应归属民族文学”的结论及其相关的部分论述内容还有待商榷。

1 译者是否是译本唯一作者

由于翻译文学的“再创造”性质,谢教授理所当然地认为译者是译本仅有的作者,并举例说到中译本《高老头》的作者是傅雷或是其他相关译者。翻译文学的“再创造”性质自然毋庸置疑,但是否译者借此就可以成为译本的唯一作者?谢教授在论证译作是文学作品的一种独立存在形式时,论述到文学改编和文学翻译极具相似性。既然在阐述“当然,在强调改编作的独立存在意义时,我们无意抹杀改编作与原作的血缘关系,更无意因突出改编作的作用而贬低原作的价值。事实上,改编者本人对此也都是很清楚的,所以绝大多数的改编作都明确标明了它们据以改编的原作的篇名以及原作者的姓名”,[5]那么为何认为译者应取代原作者成为译本的唯一作者?即便是因为文学翻译把原作的接受层面引入了一个新的文化圈、文学翻译比文学改编具有更重大的意义,也不应该以此割裂译作和原作的血缘关系。

谢教授将译者归于译本唯一作者的观点,虽然提升了译者和译本的地位,但消解了原作者和原作的价值和地位,同时带来几个尴尬局面。首先,这个观点在某种程度上为抄袭正名。假设郭敬明的《梦里花落知多少》改编的不是中国的庄羽的《圈里圈外》,而是对美国的庄羽的英文版的《圈里圈外》的改编,就谢教授的观点来说,郭敬明可以名正言顺地以“作者”自居,其改编作品还可以名正言顺地归入中国文学。笔者认为,郭敬明的改编是“再创造”,郭敬明把自己的“再创造”公布为“首度创造”,这自然是抄袭,因为“再创造”不能掩盖和抹杀“首度创造”的价值。如此说来,同样作为“再创造”的译本是否不应该掩盖和抹杀原作的价值?译者是否不应该顶替原作者成为译本唯一的作者呢?而且,在当今社会,认为中译本《高老头》的作者是傅雷的观点,不仅涉及道德层面问题,还涉及法律问题。试想一下,中文版《哈利・波特》的作者是译者,那为何罗琳要在中国抽取版税?抹杀原作者对译本的贡献,必然是侵犯原作者著作权的行为。其次,莫言作品英译本的获奖问题。进入诺贝尔文学奖评委会视野的必然是莫言的英译作品,如果按谢教授的观点,诺贝尔文学奖应该颁给这些英译本的作者――美国翻译家葛浩文,而这些英译本也将归属美国文学。笔者认为,虽然莫言作品的英译本是葛浩文的再创造,但这些英译本更多传达出的是莫言原作的文化信息。用一个也许不太恰当的比喻来说,莫言作品的英译本就像是莫言和葛浩文共同完成的作品,莫言是第一作者,葛浩文是贡献相对较少的第二作者,所以诺贝尔文学奖评委会颁奖给莫言而非葛浩文。那么,谢教授的观点就出现问题了:莫言作品的英译本是应该以第一作者也就是原作者莫言的国籍归属中国文学,还是应该以第二作者也就是译者葛浩文的国籍归属于美国文学?

2 译作归属是否应依据译者国籍

谢教授以加入美国国籍的俄国人纳博科夫的《洛丽塔》归属于美国文学为例,说明判断作品归属的依据就是该作品的作者的国籍。有一香港学者就此提出质疑:“如果单凭作者的国籍,就把霍克斯的《红楼梦》英译本列入中国文学,却把杨宪益和戴乃迭的译本列入中国文学,不是同样令人觉得混乱吗?”[6]谢教授给出的解释比较合理:这是不同国家的不同译者的不同作品,自然归属于不同国家,不存在混乱之说。但经过仔细斟酌,笔者认为套用原创文学作品归属依据作者国籍从而认为翻译文学作品归属同样依据译者国籍的观点仍然是欠妥的。

首先,正如前文所探讨的,译者是否就可以等同于译本作者,这是一个问题。其次,在文化交融日益密切的情况下,不同国籍的人合作完成译作,已成为一种趋势,那这样的译本应如何归属呢?按照谢教授的观点,不同国籍的人合作完成的译作只好勉强地同时归属于几个国家,这必然会在一定程度上给学术研究带来重复和混乱。再者,在进行两个或多个异国的比较文学研究时,大多是依据的中译本。就谢教授的观点理解,这些中译本都归属中国文学,岂不是比较文学研究直接变为中国文学研究?当然,若是要求比较文学者掌握多国语言,依据原作进行比较文学研究,这个问题就可以迎刃而解。不过,要求学者掌握两三门外语虽具有现实性但却局限比较文学的研究,若是要求四五门或是更多又不太具有现实性,正如谢教授也意识到的“目前世界上的语言有好几千种,仍在使用的、并有文字创作的少说也有一百多种,我们不可能指望每一个国家都拥有如此众多的外语人才”。[7]还有,我们可以列举一种比较极端但是也存在过的情况:二十世纪上半叶中国懂俄语的译者很少,大量的俄国文学作品是通过日译本、英译本转译而来。那是不是说,那个时候的译者其实根本就没有接触过真正的俄国文学?

3 关于其他方面的分析

为了进一步论证“翻译文学应归属民族文学”这一观点,谢教授还从写作的过程、写作的语言和作品的接受者、作品发挥的作用和影响这几个方面予以分析说明,然而在前文,谢教授一再明确我们判断作品归属的依据是该作品作者的国籍,“而其他原因,诸如作品使用的语言,作品流传的地域、作品中人物形象的国籍,作品故事发生的时间地点,等等,均不足为据”,[8]这样的论证逻辑是否不甚严密。何况,谢教授分析的“从写作的语言和作品的接受者来看,译者所用的语言与民族文学家所运用的语言是一样的,他们的作品所面临的读者也是相同的”,[9]显然忽略了我们可以假设的一种情况:美籍华人把美国作品译成中文,这中译本与美国本土作家所使用的语言、面对的作者并不同。除了上述方面,谢教授还从另一个角度论证到:“假如这些‘中国的歌德、拜伦、雪莱’只有中译本而没有原文,那么他们――‘中国的歌德、拜伦、雪莱’――在我们的文学史上该占有怎样的地位呢?那时我们该如何处置他们与(譬如说)鲁迅、茅盾、郭沫若等人的关系呢?”[10]的确,如果没有巴尔扎克的《高老头》,傅雷的《高老头》将列入中国文学经典。但是,没有原作,译作从何而来?没有原作的译作,仅是概念被偷换的原创文学罢了。即便是出现原作流失这样一种极端的情况,那也是因为我们无从尊重原作者和原作的价值而将其归入民族文学,此时的翻译文学也已非常接近原创文学的意义。对于俄国形式主义批评家托马舍夫斯基于1928年所说的“翻译文学应当作为每个民族文学的组成要素来研究。在法国的贝朗瑞和德国的海涅旁边,还有一个符合俄国的贝朗瑞、俄国的海涅,他们无疑跟西方的原型差距甚远”,谢教授说“当然,从今天的立场看,托马舍夫斯基的观点也许有点偏

激”[11],那么,由上述分析看来,将翻译文学归属于民族文学的观点也“有点偏激”吧。

4 关于民族文学史纳入翻译文学

谢教授用大量篇幅介绍了许多民族文学史性质的著作纳入了翻译文学。就国内而言,1929年出版的陈子展的《中国近代文学之变迁》、1933年出版的王哲甫的《中国新文学运动史》、1939年出版的郭箴一的《中国小说史》等,都分专章或专节对翻译文学进行叙述;就国外而言,法国的《法国现代文学史》的二十七章中,如同论述本国的原创文学一样对法国的翻译文学进行论述,英国的《剑桥英国文学简史》和《文学史纲》这两本文学史也广泛地涉及到译者和译作。笔者认为,这些论述并不应该成为将翻译文学归属于民族文学的强有力论据。首先,建国前的许多民族文学史收入翻译文学,仅是因为当时没有严格区分翻译和创作的界限。例如,1938年出版的《鲁迅全集》,收入鲁迅译文,而建国后出版的《鲁迅全集》不再收入译文,而是另外出版《鲁迅译文集》。其次,即便是编者有意在民族文学史中收入翻译文学,也不一定持有翻译文学应归属民族文学的想法,而仅是以此明确翻译文学对民族文学发展的重要作用。例如,《法国现代文学史》在第二十七章“外国作品的翻译”里就明确“要描述某些外国作品在法国的影响”,施蛰存先生就《中国近代文学大系》收入“翻译文学集”更是特意做出解释:“最初有人怀疑:翻译作品也是中国近代文学吗?当然不是。但我们考虑的是:外国文学的输入与我国近代文学的发展有密切的关系。保存一点外国文学如何输入的记录,也许更容易透视近代文学发展的轨迹。这是《中国近代文学大系》独有的需要。”[12]当然,的确也有情况是编者明确持有翻译文学应归属民族文学的观点,例如谢教授在《译介学导论》中补充的例子――《二十一世纪中国文学大系・2001年中国最佳》单独收入一卷“翻译文学”并明确表态“旨在强调翻译文学是中国文学的一个组成部分,重在突出文学翻译活动在中国当代文学创作生活中所占有的不容忽视的地位”,[13]但列举这样的事实并不能就有力说明翻译文学应归属民族文学的观点,何况正是谢教授担任此分卷主编。还有一点,谢教授对郑振铎著的《插图本中国文学史》、刘大杰著的《中国文学发展史》、朱维之编的《中国文艺思潮史稿》对佛经的翻译文学有详细论述而大加肯定,但谢教授在之前就明确强调“当译作把这些非艺术范畴的哲学、经济学、佛学等著作所包含的信息(理论、观点、学说、思想等)传达出来后,这些信息,具体地说,也就是这些著作中的理论、观点、学说、思想等,它们的归属并没有发生改变”,[14]这样的论证是否前后矛盾。

5 翻译文学的独立地位

其实,在主张翻译文学归属民族文学的同时,谢教授也注意到翻译文学与民族文学的几点差异性,并提出民族文学的“创

作”与翻译文学的“再创作”是两者最根本的区别,指明二者不应混同,翻译文学应是民族文学中相对独立的一个组成部分。但是,谢教授局限于翻译文学必定择外国文学与民族文学进行归属,并未确认翻译文学独立的学科地位。在论证过程中,谢教授一直强调将翻译文学归属民族文学是对翻译文学地位的确认,但是,一定要不顾翻译文学的复杂性质而生硬地将其冠以某个国籍才是对翻译文学地位的承认吗?换句话说,若是建立起独立的翻译文学史或是翻译文学大系以纳入译者、译本,如果将翻译文学并列于而不是归属于民族文学或外国文学,难道翻译文学的地位和作用就没有得到合理的承认吗?笔者认为,国别归属,一般来说并没有实质的文学意义,也不能够更加促进翻译文学的发展,基于翻译文学的复杂性质,应跳出传统的国别分类,明确翻译文学独立的地位。谢教授说:“翻译文学在中国文学史上没有它的地位,在外国文学史上也没有它的地位,翻译文学就成了名副其实的‘弃儿’”,[15]若是我们认识到翻译文学的独立地位,所谓的“弃儿”不仅不复为“弃儿”,还是“独立的成人”了。

参考文献:

[1][2][13]谢天振.译介学导论[M].北京:北京大学出版社,2007:135,142,150.

[3]梁婕.关于翻译文学的归属问题[J].广西民族学院学报(哲学社会科学专辑),2005,(6).

[4]张.简论翻译文学的归属问题[J].作家杂志,2012,(9).

[5][7][8][9][10][11][14][15]谢天振.译介学[M].上海:上海外语教育出版社,1999:212,215,229,241,243,246,225,208.

优秀范文