工科生《编译原理》课程教学探讨与实践.docVIP

工科生《编译原理》课程教学探讨与实践.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
工科生《编译原理》课程教学探讨与实践

工科生《编译原理》课程教学的探析和实践   摘要:针对工科生的特点及其培养目标,将《编译原理》课程的教学目标定位于“能灵活应用形式语言和自动机的基础理论来解决计算机工程领域中的相关问题”,并分析和总结了相应的教学手段和实验教学方案及其实践效果 关键词:编译原理;教学目标;教学方法;实验教学 中图分类号: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]中给出的每个程序结构的语法制导翻译过程的属性文法,分别结合一个具体的例子制作了多媒体课件,用于动态演示在语法制导翻译的每一步过程中,是如何使用与产生式相关联的属性计算规则来进

文档评论(0)

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

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

1亿VIP精品文档

相关文档