编译原理课程教学改革探索与实践

来源 :课程教育研究·学法教法研究 | 被引量 : 0次 | 上传用户:lumuming
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】针对编译原理课程在长期的实践教学中存在学生学习目标不明确,课堂教学效果不佳等问题。文章针对这些现实情况,经过不断的教学实践,总结编译原理课程的教学现状,结合具体的教学实例,有针对性的对编译原理课程进行了改革和实践,设计几种课程教学改革的实施方案,取得了不错的教学效果。
  【关键词】编译程序;编译原理;课程改革;课程实践
  【中图分类号】G424 【文献标识码】A
  【文章编号】2095-3089(2019)02-0029-01
  编译原理是计算机科学与技术和软件工程专业非常重要的核心课程。具有很强的理论性、实践性和技术性。课程要求学生掌握和理解编译系统的结构、工作流程以及编译程序的设计原理和实现技术。帮助计算机相关专业的同学提升计算机问题求解的水平,运用编译算法解决软件问题,提升学生的专业素养[1]。
  一、编译原理课程教学中存在的问题
  1.学生的前期课程学习不足。
  编译原理是计算机相关专业的重要核心课程,主要介绍的是编译器构建的原理和方法。要求学生具有较好的计算机知识,对计算机的工作原理有一定了解,对应的先修课程包括数据结构,离散数学,高级程序设计语言。实际中存在前导课程学生掌握情况一般,知识体系缺失,这些是编译原理课程教学中效果不佳的原因。
  2.课程本身的理论性较强。
  编译器规模很大,且模糊了编译器的各个逻辑部分和某些算法的实现之间的接口,涉及到形式语言和自动机理论,语法指导等概念,对这些理论的研究很困难。编译原理课程中包括DFA确定和化简的算法,用于构建文法符号的符号集和后续符号集的算法,以及用于各种数据流方程的迭代求解算法,对于本科生而言,掌握这些算法是有难度的。
  3.学生的学习能力与自制力相对不足。
  根据课程实际的教学体验,现阶段大学生的学习动机不足,无法保证基本的学习时间。厌倦学习,缺乏课堂兴趣,没有明确的学习目标和学习计划。开设编译原理课程的年级一般是大三或者是大四,作为高年级的学生在学习上的自制能力尤为不够,更容易受到其它因素的影响,在学习的过程中遇到困难,容易放弃。
  二、探索编译原理教学改革的方法
  1.明确学习目标。
  首先是要提高学生们主动学习的兴趣,在编译原理课程的第一课,要向学生们阐述课程的意义。对现实问题进行抽象化和形式化表示是进行计算机问题求解的基本途径,编译原理课程教授同学们具有这种抽象化和形式化思维的能力[2]。编译原理课程集中体现了计算思维,采用理论和算法解决了高级语言到低级语言的翻译问题,为计算机和人对话提供了可靠的接口。学习本课程有助于学生理解高级语言的本质,增加学生的学习兴趣。其次,编译原理对很多领域理论的研究具有深远的意义,如计算机软件技术领域,计算机系统结构领域,人工智能系统的机器学习领域,并行处理技术领域等[3]。在讲解到具体章节的时候,我们注意对其说明,如:正规式和有穷自动机在文本编辑器中的广泛应用,有穷自动机在字符串查找中的运用,由文法来定义网络协议等。
  2.抽象内容具体化。
  编译原理课程中的一些概念比较抽象,不容易理解,在某种程度上增加了本门课程的难度。在讲解这些知识的时候,可从现实生活中找一些实例,通过类比学习,帮助学生们对于概念的理解。举例说明,在讲解编译过程的六个阶段:词法分析、语法分析时可类比一个英文句子翻译为中文的实例,从而明确整个语言的编译过程[4]。
  3.课堂教学生动化。
  为了更进一步提高学生的学习兴趣,提高课堂教学效果,利用现代多媒体技术,将需要在教学过程中解释的知识点动态表示的过程制作成CAI课件。比如自动机如何动态识别字符串,如何以交互方式设计自动机,如何完成正则表达式到自动机的转换,如何帮助学生设计语法分析表地等。可借助于JFLAP和JELLRAP软件解决上述问题[5]。该软件能够像向导一样辅助学生完成词法和文法设计的每一步,并且动态演示学生设计的每一个词法和文法分析器的工作过程。在课堂上,不仅仅使用单一的多媒体教学方法,还可将多媒体与传统教学相结合。对于在一张幻灯片中难以展现的内容,通过黑板板书的方式,使多媒體和黑板有机分工,两者相结合,学生可以更好地理解和掌握课程内容。
  4.理论教学与实践教学相结合。
  编译原理课程实验课的设计要与课程本身的理论体系相互遵循,原理要与技术相互对照。根据编译程序的结构,词法分析,语法分析,语义分析和中间代码生成,代码优化和目标代码生成五个阶段来设计实验内容。实践教学内容,可由学生根据自己掌握的程度和自学的能力选择,三种题目难度从高到低,分数所占的总评比例分别是50%,30%,20%。
  (1)手动构造小型的编译器。
  完整的编译器包括前端部分,如词法分析,语法分析、语义分析,中间代码生成和代码优化。还包括生成适用于特定计算机体系结构的可执行代码后端部分。学生在有限的实践教学中同时完成前端和后端是不现实的,允许学生可以只完成编译的前端。
  (2)自动构造编译器。
  对某一种语言,借助Lex和 Yacc等工具,自动生成词法分析程序和语法分析程序,然后组装成完整的编译程序。这种形式的实践,学生必须花费大量的时间研究开发工具的基本原理及使用方法,通过学习,学生对编译程序前端的理论知识有一很好的学习和提高。
  (3)采用分析现有编译器程序的方法。
  不需要设计和开发特定的编译器,可通过阅读现有的编译器来了解它的工作原理。这将确保大多数学生能够完成实践任务,并达到让学生通过课程实践理解编译过程的目的。
  三、结语
  编译原理是一门理论性和实践性都很强的课程,在计算机相关专业的教学体系中有着非常重要的作用。在实际教学中,课程虽然比较抽象,难度比较大,但是学生的学习效果还是有的,不仅掌握了基础知识,而且已经体会到教学中的深层次的内容,达到了提高教学效果的目的。
  参考文献
  [1]蒋宗礼.基本学科能力培养在编译原理课程教学中的实现[J].计算机教育,2007(1):28-30.
  [2]赵晓,张振国.编译原理课程教学改革探索[J].陕西教育(高教版),2008(11):39-49.
  [3]雷宇,马新娜.编译原理课程教学改革与实践[J].中国电力教育,2010(28):71-72.
  [4]郝爱峰.编译原理教学探索[J].电脑开发与应用,2008(12):73-74.
  [5]何炎祥,伍春香.现代教学理论指导下的“编译原理”[J].计算机教育,2010(1):46-49.
其他文献
【摘 要】参与式教学法是提高英语课堂有效性的重要途径。本文从参与式教学法的理论基础出发,谈到医护英语中参与式教学法对教学效果的积极影响。  【关键词】医护英语;参与式教学;教学效果  【中图分类号】G4 【文献标识码】A  【文章编号】2095-3089(2019)05-0012-01  一、引言  近年来,教学理论不断发展,持续更新。无论教学方法怎样变,其目的只有一个,那就是使学生的学习过程更加
在化工流程企业中,有关过程强化的讨论才刚刚起步。过程强化是一种有效节省资源的流程技术吗?它能够使化工产品更新、更加智能化吗?抑或只是一种穿新鞋走老路的技术?
期刊
患者23岁,GIP1。2004年10月足月剖宫产一女婴,节育环避孕。因“停经54天阴道少量出血9天”,于2007年5月21日17时入院。停经45天查尿hCG阳性,未行B超检查。9天前门诊查血hCG8 728
【摘 要】《新能源汽车技术》课程,是高职课程的重要组成部分,具有创新性、基础性、以及多元性等特征。基于此,本文结合《新能源汽车技术》课程教学目标,着重对该课程实践要点进行归纳,以达到合理解析学科传授要点,培养创新型人才的目的。  【关键词】《新能源汽车技术》课程;教学要点;课程改革  【中图分类号】G712 【文献标识码】A  【文章编号】2095-3089(2019)02-0029-02  引言
【摘 要】小批量较且孔径较小的螺孔或是配作螺孔常用手工攻丝的方法加工,由于加工者的操作错误常导致加工螺孔的丝锥折断,本文简明分析内螺纹加工中丝锥折断的成因及解决方法,以期能起到抛砖引玉的作用。  【关键词】螺纹加工;丝锥折断;措施  【中图分类号】TQ513 【文献标识码】A  【文章编号】2095-3089(2019)03-0023-01  螺纹在实际工作中主要起连接和传递运动及动力的作用,因而
教学秘书是专门从事教学管理工作、直接参与教学活动(教学计划、教学组织、教学安排等)的工作人员,是高职院校教学管理队伍中的重要组成部分。近年来,随着高职院校的高速发展
2006年6月20日艾默生过程管理与台湾电力公司(“台电”)签订了一项640万美元的合同,为台湾龙门第四核电厂的通用汽轮发电机控制系统(通常称作电厂配套系统)供应费希尔阀门。
方形封箱带(Edge Tape)将传统的圆形胶带变成方形,一点小小的变化,带来大大的方便。圆形的胶带,太容易滚动了,而且使用的时候,它会很容易就撕下长长的一段,导致浪费。而方形的封箱带
【摘要】计算机技术在网络平台中发挥的作用越来越大,在多个领域都产生了深远影响。其中,在教育教学方面也产生了相应的变化,最为突出的就是云课堂教学平台的研究发展,这种研究与云计算技术关系密切。基于此,本文将阐述基于云计算技术的云课堂教学平台的研究与应用。  【关键词】云计算技术 云课堂教学平台 研究与应用  【中图分类号】G434;G712【文献标识码】A 【文章编号】2095-3089(2019)1