《编译技术》课程教学的一些体会
来源:百度文库 编辑:神马文学网 时间:2024/04/26 12:16:54
《编译技术》课程教学的一些体会 北京航空航天大学 计算机学院 张莉 可能是因为北航工科院校的特点,我们的编译课程一直采用了《编译技术》这个名字,意在强调编译系统的构造及其相关技术。 曾经一度,有人讲我们的学生毕业后很少做编译器了,是否不用学编译课程了。我不这样认为。虽然,我们重在介绍编译系统的构造和相关技术,但是在这个过程中,我们介绍了计算机领域三个非常重要的概念和技术:1)高级程序设计语言的工作原理;2)一种程序/模型转换的方法:实现模型从一种语言表达形式到另一种语言表达形式的(语义)等价转换技术;3)软件系统的概念。毕竟对于大多数本科生而言,编译系统是他们构造的第一个相对完整的软件系统。而之前更多是针对语言、数据结构和算法的程序设计练习。 基于这三个定位,我们在教学过程中考虑如何将这三点有机的结合起来,贯穿整个教学过程。尽可能做到问题驱动、目标驱动,重视系统性,让大家理解为什么要学习“枯燥”的理论部分。
第一,大家都认为编译课难学、难讲,尤其是理论部分。经过多年的教学,我发现学生更多的是不理解为什么要学那么多理论、那么多分析方法,不能很好的建立之间的逻辑关系;还有就是不理解学编译有什么用。对此,我们采用问题驱动的方法,在讲解过程中不断提出问题。如讲语法分析部分,介绍了递归子程序法,可以编写某些语法的编译程序,但是我们必须对于每一个文法手工编写相应的编译程序,于是一个问题是:是否可以找到一种机器自动生成编译程序的方法呢?由此,逐渐引出LL(1)分析法。再由自顶向下分析法的不足引出自底向上分析法。从而保证整个课程有一条清晰的线索贯穿各个知识点,并在讲解过程中不断强化这条线索。 第二,是编译课程的实践性。这是一门实践性很强的课程。学生要真正理解编译系统,往往是在做完编译课程设计之后。为此,我们要求所有的学生都要完成一个编译系统(从词法分析到程序执行),无论大小、复杂与否,从而真正理解整个编译过程,以及系统的运行过程。为到达这个目标,我们设计了不同难度系统的题目:包括不同复杂程度的文法、生成不同的代码(从伪代码,到X86汇编、MIPS汇编指令等)、是否要求进行代码优化以及不同的代码优化要求等,从而满足不同基础的学生进行课程实践的要求。 第三,是考虑编译技术的实用性。作为一门介绍高级程序设计语言原理的课程,对于编写高质量的程序是非常实用的。学了编译技术,学生理解了编译过程和程序执行过程,对于提高学生的程序调试能力是非常有用的。为此,我们也介绍了一些调试工具,提高学生的编程水平。 编译课程面临很多挑战:随着技术的发展和社会的需求,如何平衡基础性和实用性、前端和后端(尤其是优化技术)的讲解比例、基础性和前沿性(新的语言特征的处理、并行编译技术、面向对象编译技术)......希望和更多的同仁聚在一起,交流编译课程教学中取得的经验,研讨面临的挑战和问题。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hzbooks/archive/2009/07/14/4347299.aspx
第一,大家都认为编译课难学、难讲,尤其是理论部分。经过多年的教学,我发现学生更多的是不理解为什么要学那么多理论、那么多分析方法,不能很好的建立之间的逻辑关系;还有就是不理解学编译有什么用。对此,我们采用问题驱动的方法,在讲解过程中不断提出问题。如讲语法分析部分,介绍了递归子程序法,可以编写某些语法的编译程序,但是我们必须对于每一个文法手工编写相应的编译程序,于是一个问题是:是否可以找到一种机器自动生成编译程序的方法呢?由此,逐渐引出LL(1)分析法。再由自顶向下分析法的不足引出自底向上分析法。从而保证整个课程有一条清晰的线索贯穿各个知识点,并在讲解过程中不断强化这条线索。 第二,是编译课程的实践性。这是一门实践性很强的课程。学生要真正理解编译系统,往往是在做完编译课程设计之后。为此,我们要求所有的学生都要完成一个编译系统(从词法分析到程序执行),无论大小、复杂与否,从而真正理解整个编译过程,以及系统的运行过程。为到达这个目标,我们设计了不同难度系统的题目:包括不同复杂程度的文法、生成不同的代码(从伪代码,到X86汇编、MIPS汇编指令等)、是否要求进行代码优化以及不同的代码优化要求等,从而满足不同基础的学生进行课程实践的要求。 第三,是考虑编译技术的实用性。作为一门介绍高级程序设计语言原理的课程,对于编写高质量的程序是非常实用的。学了编译技术,学生理解了编译过程和程序执行过程,对于提高学生的程序调试能力是非常有用的。为此,我们也介绍了一些调试工具,提高学生的编程水平。 编译课程面临很多挑战:随着技术的发展和社会的需求,如何平衡基础性和实用性、前端和后端(尤其是优化技术)的讲解比例、基础性和前沿性(新的语言特征的处理、并行编译技术、面向对象编译技术)......希望和更多的同仁聚在一起,交流编译课程教学中取得的经验,研讨面临的挑战和问题。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hzbooks/archive/2009/07/14/4347299.aspx
《编译技术》课程教学的一些体会
教学设计:DNA是主要的遗传物质 - 教育技术|教学设计|信息技术|课程整合|远程教育|网...
警惕!一些大学教师充当掮客为学生索要考分 - 教育技术|教学设计|信息技术|课程整合|远程...
学习MySQL的一些体会
我的一些施工体会
浅谈网络环境息技术课程教学---信息技术
教学副校长的六点体会2
小组合作学习的教学及体会
媒体沟通模拟教学的体会
高中数学新课程关于概率的教学体会
浅谈对鲁迅教学作品的体会
语文教学中语言文字训练的体会
浅谈高中音乐鉴赏教学的体会
一个项目经理的一些个人体会
一个项目经理的一些个人体会
关于盘感训练的一些体会
数学作业设计的一些体会1
数学作业设计的一些体会2
数学作业设计的一些体会3
数学作业设计的一些体会
策划清明特别节目的一些体会
一个项目经理的一些个人体会**
一个项目经理的一些个人体会1
D300用户使用D7000的一些体会