“编译技术”:以编译过程带动课程知识点.docVIP

“编译技术”:以编译过程带动课程知识点.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
“编译技术”:以编译过程带动课程知识点   摘要:“编译技术”是一门公认的难教难学的课程,包含了看似晦涩的理论部分和覆盖面广的实践部分。如何根据本学校的培养定位组织教学内容,如何实施教学过程,是教师们普遍关注的主要问题。本文结合北京航空航天大学这类工科院校强调工程技术的特点,探讨了“编译技术”课程的组织方式,提出了以编译过程为主导带动课程知识点的课程安排模式,并针对不同类型高校给出了教学安排建议。   关键词:编译技术;编译原理;课程定位;课程内容组织   中图分类号:G642 文献标识码:B      1引言      “编译原理/技术”是计算机专业的一门经典课程。由于该课程包含了词法分析、语法分析方法中与形式语言及自动机相关的让人颇感晦涩的原理,以及在代码生成和代码优化部分与计算机系统结构有关的庞杂繁琐的实现技术,让许多非计算机相关专业的学生望而却步,几乎成为计算机专业“科班出身”的一种标志。与此同时,难教难学也是这门课的一个特点。如何让那些看似晦涩的原理和庞杂的实现技术对学生来说更容易理解和掌握呢?笔者认为,教学内容的组织和课程安排模式是非常重要的因素。同样的知识点,因不同的组织方式而变得逻辑性更强,更容易理解和掌握。本文结合北京航空航天大学编译课程的建设,探讨以编译过程为主导带动课程知识点的课程组织模式。      2课程定位      编译课程在不同学校教学计划中的教学定位可能不同。北京航空航天大学(简称北航)是一所具有航空航天特色和工程技术优势的多科性、开放式、研究型大学。北航计算机学院将编译课程设置为一门核心专业必修课,并命名为“编译技术”(而非“编译原理”),意在秉承工程院校强调工程技术的特点,强调编译系统的构造及其相关技术。本课程安排在大三上学期,先修课要求:一门高级程序设计语言、“数据结构和算法”以及“计算机原理和汇编语言”等课程。同时本课程安排在“操作系统”之前,是学生接触到的第一个讲述完整的软件系统的课程。本课程理论和实践并重,要求学生掌握编译的基本理论、常用的编译技术,了解编译过程及编译系统的构造(结构和机理);能运用所学技术解决实际问题,能独立编写一个小型编译系统。   曾经一度,有人认为学生毕业后很少做编译器了,因此不必再开设编译课了。Alfred V. Aho在其著名的《编译原理》(龙书)中提到:编译器设计的原理和技术还可以用于编译器设计之外的众多领域,这些原理和技术通常会在一个计算机科学家的职业生涯中多次被用到。因此,编译课程在本科教学体系中应该承载超越“编译系统构造”的使命。笔者认为,“编译技术”课程作为一个载体,在培养学生专业素质方面起到了非常重要的作用,主要体现在:(1)让学生理解高级程序设计语言的工作原理和相关概念;(2)通过编译程序的构造和相关算法,让学生掌握软件领域重要的程序(模型)等价转换技术、程序(模型)优化技术;(3)通过编译系统的介绍,让学生了解软件系统的概念和软件系统设计的方法;(4)通过学习词法分析程序、语法分析程序的自动生成技术,让学生对程序的自动生成技术有所了解。   基于这样的理解,北航编译课程的培养定位为:基础和前沿相结合、理论和实践相结合。要求学生既要掌握编译的经典基础理论和算法,对编译系统有完整的理解,又要求学生具备简单编译系统的构造能力。   同时通过“编译课程设计”实践课程,让学生:(1)掌握编译程序构造的主要技术和算法,理解编译过程;(2)体验一个比较完整的软件系统的设计、开发、测试过程,建立系统设计观念;(3)结合软件工程课程,完成规范化文档;(4)在本科培养体系中,进一步提高数据结构的综合应用能力和程序设计能力。      3课程的组织      基于以上的定位,笔者认为“编译技术”课程的组织应强调过程完整性、系统性和实践性。   (1) 过程完整性:编译过程是一个翻译的过程,编译技术的实质是介绍程序/模型从一种语言表达形式到另一种语言表达形式的等价转化方法,所以在课程内容的安排中应该保证编译过程的完整性,至少是一个完整的翻译过程。   (2) 系统性:编译器是一个完整的软件系统,也是学生接触到的第一个系统(之前学生接触到的主要是针对语言、数据结构和算法的程序设计练习)。应该让学生理解一个完整的系统是如何构成的,各部分应如何组织和协调。   (3) 实践性:理论应该和实践相结合,无论是研究性大学、非研究性大学,都应该注重实践和学生动手能力的培养,尤其是对计算机专业的学生,实际动手能力关乎谋生大计,更不能小视。北航计算机学院为了突出实践环节的重要性,将实践环节部分设置为一门课程,单独计算学分。我校该课程的组织如下:   (1) 教学内容组织(理论课部分)   编译课程中晦涩的原理和庞杂的算法总有些让人望而

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档