资源描述:
《普通本科院校编译原理实践教学改革探讨.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、普通本科院校编译原理实践教学改革探讨 【摘要】本文根据编译原理课程的特点,结合自己的教学经验,探讨了普通本科院校编译原理的实践教学内容的设置,对普通高校更深入的教学改革和创新人才的培养具有一定的意义。 【关键词】编译原理教学内容课程实验 1引言 编译原理课程是计算机科学与技术专业的重要专业课,它不仅能帮助学生更深入地了解计算机以及计算机程序的本质,还能提高学生进行问题求解的能力。本课程的理论性和实践性都很强。国外和国内分别从二十世纪六十和八十年代开始设置“编译原理”课程,从文献[1,
2、2]两本专著的内容可以看出,几十年来,“编译原理”课程可以讲授的内容越来越多。设置该课程的目的在于系统地向学生讲叙编译程序设计的基本理论、编译系统的结构及编译程序各部分的设计原理和实现技术。通过对这些知识的学习,使学生既能掌握编译理论和编译方法等方面的基本知识,又具有设计、分析、实现和维护编译程序等各方面的综合能力。该课程一般包括理论教学和实验教学两部分。编译原理理论知识包括形式语言、有穷自动机等抽象内容及大量的算法,较难理解和掌握,因此“编译原理”的实验教学对于深化学生对所学理论知识的理解,提
3、高学生的理论联系实践的能力和编程水平具有重要的作用。 本文根据编译原理课程的特点,结合自己的教学经验与我院的实际情况,探讨了普通本科院校编译原理的实践教学内容的设置。 2课程实验的重要性 编译原理是集理论与实践于一体的一门课程,在理论课中所介绍的基本概念、原理、方法和算法,一定要通过实验加以理解和吸收,才能能够达到真正的理解、吸收和掌握。编译原理课程实验的内容主要放在对词法分析、语法分析和语义分析、中间代码生成、中间代码优化和目标代码生成的方法上。由于编译原理课程有很强的理论性与实践性
4、,在学习时普遍感到内容抽象,不易理解,掌握起来难度很大。因此通过教学实践和对学生所做的调查表明,设计一组与理论内容相配套的实验是十分必要的。 3课程实验的设计 针对编译原理课程的特点及要求,共设置了五个实验项目。这组实验既和理论课内容相辅相承,同时相互之间又互相关联,构成了一个实验整体。 实验一 题目:消去C、C++程序中的注释(2学时,必做) 实验目的:掌握C语言文件的基本操作,消除源C语言程序中的注释,为以后的编译提供方便。 实验要求:对给定的带注释的C语言源程序,利用该程序
5、去掉注释,输出去除注释的源程序。3 实验二 题目:词法分析(必做,4学时) 目的:通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。 要求:编写程序对输入的源程序字符串进行词法分析,对符合下述文法描述的字符串,建立单词符号表,不符合的字符串给出错误信息。 内容:用扩充的BNF表示如下: <标识符>→<字母>{<字母><数字>} <整型常数
6、>→<数字>{<数字>} <算符>→+-*/()= <字母>→abc…yABC…Y <数字>→1234567890 实验三 题目:递归下降分析法(4学时,选做) 目的:根据给定的文法编制调试递归下降分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对递归下降分析法的理解。 要求:对给定的文法,利用递归下降分析法对任意输入的符号串进行分析语法分析,对符合下述文法描述的字符串(表达式或赋值语句),给出中间
7、代码,不符合的字符串给出错误信息。 内容:用扩充的BNF表示如下: <赋值语句>→<标识符>=<表达式> <表达式>→<表达式>{+<项>-<项>}<项> <项>→<项>{*<因子>/<因子>}<因子> <因子>→<标识符>(<表达式>) 即:S→i=E E→E+TE-TT T→T*FT/F
8、F F→i(E) 实验四 题目:语法分析程序LL(1)(4学时,必做) 目的:通过该实验使学生掌握描述语法规则的文法,以及加深对语法分析中自顶向下分析法中的预测分析法的理解。 要求:对给定的文法建立预测分析表,利用预分析法对实验一中词法分析产生的符号进行语法分析,对符合下述文法描述的字符串(表达式或赋值语句),给出中间代码,不符合的字符串给出错误信息。 内容:用扩充的BNF表示(同实验三)。 实验五 题目:语法分析程序LR(1)(4学时,必做) 目的:通过该实验使学生加深对语法