工科生《编译原理》课程教学的探析和实践

工科生《编译原理》课程教学的探析和实践

ID:31489265

大小:106.00 KB

页数:6页

时间:2019-01-12

工科生《编译原理》课程教学的探析和实践_第1页
工科生《编译原理》课程教学的探析和实践_第2页
工科生《编译原理》课程教学的探析和实践_第3页
工科生《编译原理》课程教学的探析和实践_第4页
工科生《编译原理》课程教学的探析和实践_第5页
资源描述:

《工科生《编译原理》课程教学的探析和实践》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、工科生《编译原理》课程教学的探析和实践  摘要:针对工科生的特点及其培养目标,将《编译原理》课程的教学目标定位于“能灵活应用形式语言和自动机的基础理论来解决计算机工程领域中的相关问题”,并分析和总结了相应的教学手段和实验教学方案及其实践效果。  关键词:编译原理;教学目标;教学方法;实验教学  中图分类号:G642.0文献标志码:A文章编号:1674-9324(2013)05-0119-02一、引言6  《编译原理》是大学计算机专业本科教育的一门核心课程,它涉及形式语言、程序设计语言、算法和数据结构、体系结构和软

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

3、发能力的培养,提高学生对数据结构和算法知识的综合应用能力,以及程序编制能力。本文针对工科生的特点及其培养目标,对《编译原理》课程的教学目标定位和教学方法进行一些分析和实践总结。  二、教学目标  《编译原理》课程的教学目标一般是使学生掌握形式语言和自动机的基本理论,以及编译程序有关的算法和开发方法[1]。考虑到对工科学生的基本要求是能应用基本理论解决工程实际问题,我们要求学生在能正确理解形式语言和自动机的基础理论基础上,不仅能掌握其在程序设计语言翻译中的应用方法,而且能灵活应用于解决计算机工程领域中其他有关问题,

4、例如:命令行处理器、用户界面等。我们向学生强调,通过学习编译原理这门课程,掌握编译程序的基本原理和有关算法只是一个方面,另外一个很重要的方面是培养应用基本理论来解决实际问题的能力,加强数据结构及其算法的综合应用能力,以及提高编制大程序的能力。在教学内容安排上,我们把重点放在词法分析、语法分析、语法制导翻译、符号表和中间代码生成上,而对代码优化、目标代码生成、寄存器分配等内容只作概要性介绍。  三、教学方法  (一)化抽象为具体  《编译原理》课程的内容非常抽象,大多数学生在学习过程中,会对其抽象的术语和符号、以及

5、枯燥的形式化推导过程感到困惑,并渐渐失去学习的兴趣和热情。如果能从具体的例子出发,再抽象出基本概念,就能使学生对抽象的概念有更深刻的理解。  例如,“LR(0)分析”是《编译原理》课程中非常精彩的一节内容,但由于涉及“活前缀”、“LR(0)项目”6等许多抽象的术语,学生往往难以理解,特别对“构造识别活前缀的有限自动机”的思想内涵的理解难以透彻。我们在讲解时,不是直接给出这些术语的定义,而是从一个LR分析的实例出发,让学生观察LR分析过程中分析栈内容的变化及其特征,引导学生发现“分析栈中的符号串有三种格局:不含有句

6、柄的任何符号;含有句柄的部分符号;正好含有句柄的全部符号。”这时,可向学生引入“活前缀”和“LR(0)项目”等术语的含义:“活前缀”就是LR分析过程中分析栈中形成的一个符号串,而“LR(0)项目”就是刻画这个符号串的格局。最后给出“活前缀”和“LR(0)项目”的形式化定义。这种讲法,不仅可以使学生对这些抽象概念有具体的感性认识,从而更容易地去理解相应的形式化定义,而且可以培养学生逐步适应形式化描述。接着在讲解“构造识别活前缀的有限自动机”时,先让学生回答“使用LR方法,用给定的一个文法去分析一个符号串时,会有哪些

7、可能的LR(0)项目出现,并且这些LR(0)项目是如何迁移的?”,进一步启发学生:“一个文法的任何一个句型,它的句柄只可能是这个文法的某个产生式的右部。”。这样,学生就能较好地理解如何从一个文法求出它的所有LR(0)项目及其迁移关系,进而也能较好地掌握构造识别活前缀的有限自动机的方法。  (二)开发和使用多媒体教学课件,采取直观形象的教学方式  对《编译原理》课程中的一些抽象内容,除了采用“化抽象为具体”的方法6外,我们还开发了一组多媒体教学课件,用于动态演示一些较为复杂和难以理解的编译过程。例如,在用属性文法描

8、述一个语法制导翻译过程的教学中,学生很难从一个给定的属性文法想象出一个具体的翻译过程。要让他们用一个属性文法来定义一个语法制导的翻译过程,那就更难了。所以,我们针对教材[2]中给出的每个程序结构的语法制导翻译过程的属性文法,分别结合一个具体的例子制作了多媒体课件,用于动态演示在语法制导翻译的每一步过程中,是如何使用与产生式相关联的属性计算规则来进行翻译的。图1(a)是“控

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。