编译原理课程教学研究

  【摘 要】目前的编译原理课程的教学中存在以下问题:1、教学内容偏重于原理;2、实验内容的语言不合理;3、实践环节太薄弱。针对此做出了如下的改变:1、区分不同层次的学生合理组织教学;2、灵活应用多种教学方法;3、加强学生动手能力。   【关键词】编译原理 改革 教学方法 动手能力 组织教学      一、引言   编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。   二、在教学过程中存在的问题   在编译原理课程的教学实践中,我们发现需要解决下列问题:1. 教学内容比较偏重于原理。编译原理中的核心理论是词法分析和语法分析这两部分, 如果说不去做题的话是不可能学懂的。那么按照这样的教学内容教课, 就容易给学生造成误解, 认为学编译原理关键就是会做题。但是事实上是不对的,编译原理不同于一般我们所学的纯理论课,它的实践性也是很强的。2. 实验内容所使用的语言不合理。目前大多数教材中的实验内容使用PL/0语言的编译程序。但是事实上因为PL/0语言是pascal的子集,而现在很多学生已经不再学习pascal语言了,所以大多数的程序是看不太明白的。3. 实践环节太薄弱。纵观整个编译原理的教学,事实上所偏重的都是理论教学,而真正的实践实在是少之又少,以致学生搞不太清楚研究编译原理到底有什么意义。   而且由于编译原理涉及的理论知识较多, 形成了一种抽象层面上的数据变换, 许多学生难以理解, 曾一度被视为天书。有些学生在专业课学习时还存在考研或实用的偏爱, 投入到编译原理的学习时间相对来说就较少, 给教学带来一定的影响。   三、 对这些问题做出的一些改进方法   针对以上的这些问题,我们有必要对编译原理这门课程做出一些改革。   第一,区分不同层次的学生合理组织教学。在教学过程中要考虑到大多数学生的学习现况,达到基本的教学目的,讲授编译原理的基本概念、基本知识,让绝大多数学生了解编译原理的基本思想,掌握常用的编译技术。具体的说,可以根据学生对编译原理的不同要求,将学生分为两个不同层次:第一层次的学生只是按大纲要求掌握编译原理的基本内容, 第二层次的学生则需要在第一层次基础上拓展和提高。这类学生一般是对编译原理有兴趣,准备考研或者是想掌握相应的编译技术的。教学内容应以第一层次的学生为基础, 而实验内容应考虑第二层次学生的要求。针对这样的情况,教学的主要内容相同, 但要求不同, 如课后作业可分必做和选做两种, 实验内容也可分必做和选做两种。在教学过程中, 应突出编译原理的主要内容以及基本框架, 对教材及教学内容做一定的取舍, 突出重点。   第二,灵活应用多种教学方法。利用启发式教学提高学生学习的积极性和主动性。根据教材的内在联系和学生的认识规律,由浅入深、由近及远、由表及里、由易到难逐步提出问题,解决问题、引导学生主动、积极、自觉的掌握知识。   采用形象化的方法来帮助学生掌握原理。比如,在讲解句型的短语、直接短语和句柄的时候,如果按照书上所给出的概念来做的话,学生理解起来非常困难,这个时候可以依靠语法树来帮助学生理解原理。语法树有几个内部节点就代表有几棵子树,每棵子树的叶节点从左至右排列组成一个短语 ,只具有父子两代的子树则组成了直接短语,而处于整棵语法树最左边的只具有父子两代的子树则构成了句柄。   利用实例教学,通过从环境中取得若干与某概念相关的例子,经过归纳得出一般性概念。首先让学生学习理论知识,然后讲解和知识相关的实例,让学生听懂例子,理解例子,学生再综合实践,从而激发学生学习这门课程的兴趣,增强了学生的自信心,为学好这门课排除心理障碍。   第三,加强学生的动手能力。为了帮助学生理解编译的各个过程,可以在学期最开始的时候布置给学生完成一个简单编译器的作业,等到学期结束的时候验收。这样,学生在学习理论知识的同时又锻炼了自己的动手能力,并且加深了对整个编译器工作过程的理解。因为,如果不理解编译器编译的各个过程的话,是无法很好的完成这样一个编译器的。   四、总结   编译原理是计算机科学以及相关专业的一门重要的专业基础课程,尤其是对于软件专业的学生来说,学习编译原理可以帮助他们更好地了解计算机的底层工作,从而才能开发出能够满足客户和计算机双重需要的软件。所以,老师在教学过程中应该注重理论与实践的结合,认真的组织编译原理课程实践,将阅读代码与动手完成真正的编译器结合,提高实验的效果,帮助学生打好扎实的理论基础的同时并具备较强的实践能力,提高教学质量。

  【摘 要】目前的编译原理课程的教学中存在以下问题:1、教学内容偏重于原理;2、实验内容的语言不合理;3、实践环节太薄弱。针对此做出了如下的改变:1、区分不同层次的学生合理组织教学;2、灵活应用多种教学方法;3、加强学生动手能力。   【关键词】编译原理 改革 教学方法 动手能力 组织教学      一、引言   编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。   二、在教学过程中存在的问题   在编译原理课程的教学实践中,我们发现需要解决下列问题:1. 教学内容比较偏重于原理。编译原理中的核心理论是词法分析和语法分析这两部分, 如果说不去做题的话是不可能学懂的。那么按照这样的教学内容教课, 就容易给学生造成误解, 认为学编译原理关键就是会做题。但是事实上是不对的,编译原理不同于一般我们所学的纯理论课,它的实践性也是很强的。2. 实验内容所使用的语言不合理。目前大多数教材中的实验内容使用PL/0语言的编译程序。但是事实上因为PL/0语言是pascal的子集,而现在很多学生已经不再学习pascal语言了,所以大多数的程序是看不太明白的。3. 实践环节太薄弱。纵观整个编译原理的教学,事实上所偏重的都是理论教学,而真正的实践实在是少之又少,以致学生搞不太清楚研究编译原理到底有什么意义。   而且由于编译原理涉及的理论知识较多, 形成了一种抽象层面上的数据变换, 许多学生难以理解, 曾一度被视为天书。有些学生在专业课学习时还存在考研或实用的偏爱, 投入到编译原理的学习时间相对来说就较少, 给教学带来一定的影响。   三、 对这些问题做出的一些改进方法   针对以上的这些问题,我们有必要对编译原理这门课程做出一些改革。   第一,区分不同层次的学生合理组织教学。在教学过程中要考虑到大多数学生的学习现况,达到基本的教学目的,讲授编译原理的基本概念、基本知识,让绝大多数学生了解编译原理的基本思想,掌握常用的编译技术。具体的说,可以根据学生对编译原理的不同要求,将学生分为两个不同层次:第一层次的学生只是按大纲要求掌握编译原理的基本内容, 第二层次的学生则需要在第一层次基础上拓展和提高。这类学生一般是对编译原理有兴趣,准备考研或者是想掌握相应的编译技术的。教学内容应以第一层次的学生为基础, 而实验内容应考虑第二层次学生的要求。针对这样的情况,教学的主要内容相同, 但要求不同, 如课后作业可分必做和选做两种, 实验内容也可分必做和选做两种。在教学过程中, 应突出编译原理的主要内容以及基本框架, 对教材及教学内容做一定的取舍, 突出重点。   第二,灵活应用多种教学方法。利用启发式教学提高学生学习的积极性和主动性。根据教材的内在联系和学生的认识规律,由浅入深、由近及远、由表及里、由易到难逐步提出问题,解决问题、引导学生主动、积极、自觉的掌握知识。   采用形象化的方法来帮助学生掌握原理。比如,在讲解句型的短语、直接短语和句柄的时候,如果按照书上所给出的概念来做的话,学生理解起来非常困难,这个时候可以依靠语法树来帮助学生理解原理。语法树有几个内部节点就代表有几棵子树,每棵子树的叶节点从左至右排列组成一个短语 ,只具有父子两代的子树则组成了直接短语,而处于整棵语法树最左边的只具有父子两代的子树则构成了句柄。   利用实例教学,通过从环境中取得若干与某概念相关的例子,经过归纳得出一般性概念。首先让学生学习理论知识,然后讲解和知识相关的实例,让学生听懂例子,理解例子,学生再综合实践,从而激发学生学习这门课程的兴趣,增强了学生的自信心,为学好这门课排除心理障碍。   第三,加强学生的动手能力。为了帮助学生理解编译的各个过程,可以在学期最开始的时候布置给学生完成一个简单编译器的作业,等到学期结束的时候验收。这样,学生在学习理论知识的同时又锻炼了自己的动手能力,并且加深了对整个编译器工作过程的理解。因为,如果不理解编译器编译的各个过程的话,是无法很好的完成这样一个编译器的。   四、总结   编译原理是计算机科学以及相关专业的一门重要的专业基础课程,尤其是对于软件专业的学生来说,学习编译原理可以帮助他们更好地了解计算机的底层工作,从而才能开发出能够满足客户和计算机双重需要的软件。所以,老师在教学过程中应该注重理论与实践的结合,认真的组织编译原理课程实践,将阅读代码与动手完成真正的编译器结合,提高实验的效果,帮助学生打好扎实的理论基础的同时并具备较强的实践能力,提高教学质量。


相关文章

  • 编译原理学习导论 [和讯博客]
  • 文章来源: 转贴www.csdn.net 大学课程为什么要开设编译原理呢?这门课程关注的是编译器方面的产生原理和技术问题,似乎和计算机的基础领域不沾边,可是编译原理却一直作为大学本科的必修课程,同时也成为了研究生入学考试的必考内容.编译原理 ...查看


  • 软件编译技术课程总结
  • 软件编译技术论文 学号: 姓名: 班级: 摘要 软件编译技术是计算机及相关专业的一门重要专业课程,在计算机科学中有很重要的地位和作用,已被国内外高校列为计算机专业的主要课程.它主要介绍了高级程序设计语言编译程序构造的一般原理.基本设计方法. ...查看


  • 2016编译原理课程设计心得体会 2篇
  • 2016编译原理课程设计心得体会 2篇 经过一个星期的编译原理课程设计,本人在刘贞老师的指导下,顺利完成该课程设计.通过该课程设计,收获颇多. 一.对实验原理有更深的理解 通过该课程设计,掌握了什么是编译程序,编译程序工作的基本过程及其各阶 ...查看


  • 高级语言编译过程可视化研究
  • 高级语言编译过程可视化研究 摘要:针对编译原理教学中存在的知识点多.概念抽象.算法难 于理解的情况,本文设计了一种可视化编译系统,实现了类c 语言 的文法编辑与检查.词法分析.语法分析.语义处理的过程展示. 系统界面布局一致.操作简便,为便 ...查看


  • 广东工业大学2015编译原理课程设计
  • 编译原理课程设计报告 课程名称____编译原理课程设计_ 题目名称PL/0编译器的扩充 学生学院__ 计算机学院______ 专业班级___ 学 号______ 学生姓名____ 指导教师______ 张巍 2015年 12 月 27日 一 ...查看


  • 计算机专业课程表
  • 2007计算机科学与技术专业教学计划 一.培养目标 本专业培养适应海峡西岸经济区,尤其是厦门市经济建设与社会发展需要,具有良好的科学素养,系统扎实地掌握计算机科学与技术基本理论.基本知识和基本技能与方法,符合计算机发展规律要求,能综合运用知 ...查看


  • 编译原理课程设计文档格式规范
  • 一.课程设计内容:(两个题目任选一个) 1. 题目一:  根据指导教师的要求设计一个C语言子集的编译器,要求有友好的图形界面,能 够实现编译的词法分析,语法分析和语义分析功能,并具备一定的错误处理能力,给出总的出错报告,编译最终形成四元式 ...查看


  • 智能抢答器设计
  • 能力拓展训练 题 目 学 院 专 业 班 级 姓 名 指导教师 智能抢答器设计 2013年6月24日 能力拓展训练任务书 学生姓名: 专业班级: 指导教师: 工作单位: 自动化学院 题 目: 智能抢答器设计 初始条件:计算机.Max+plu ...查看


  • 计算机组成原理-半加器实验报告
  • 课 程 设 计 报 告 课程设计名称:课程设计题目: 院(系):专 业:班 级:学 号:姓 名:指导教师:完成日期: 计算机组成原理课程设计半加器和全加器设计开发 目 录 1.1 实验目的 ......................... ...查看


热门内容