课程名称 |
编译原理实验 |
Experiments of Compiler Principles |
开课单位 |
计算机科学与工程学院 |
课程性质 |
必修课 |
课程类别 |
实践环节 |
课程代码 |
210731100401 |
学分 |
1 |
学时 |
22 |
适用专业 |
计算机科学与技术 |
先修课程 |
程序设计基础、离散数学 |
支撑课程 |
编译原理 |
授课语言 |
中文 |
一、课程简介
(一)课程中文简介
《编译原理实验》是计算机科学与技术专业重要专业实践课程。本课程通过上机实验,培养学生掌握词法分析、语法分析的原理和思想,系统、全面地掌握编译技术。进一步加深对课堂中讲授的编译原理(技术)内容的理解,掌握编译程序诸环节常用的实现方法和技术,并初步具有研究、设计、编制和调试编译系统的能力, 通过实验,掌握针对解决复杂工程问题构建实验系统并获得实验数据并进行分析的能力。
(二)课程英文简介
The Experiment of compiler principle is an important professional practice course for computer science and technology specialty. Through the experiments, this course trains students to master principle and thoughts of the lexical analysis, syntax analysis. Systematically and comprehensively grasp the compilation technology, and further deepen the class teaching of compiler principle (Technology) to understand the content, master compiler implementation methods and techniques commonly used in various sectors, and has preliminary research, design preparation and debugging of the compiler system.
二、实验课程目标
本课程的目标包括:
CO1:掌握编译程序实现方法和技术,实现编译器2个阶段。
CO2:对编译器各个阶段不同实现方法进行比较与评价,理解软件开发多种方法、工具、环境对系统实现作用。
CO3:运用编译原理技术,构建实验系统获得实验数据并进行分析。
课程目标与所支撑的毕业要求指标点的对应关系如表1所示。
表1课程目标与所支撑的毕业要求内涵观测点的对应关系
适用专业 |
毕业要求内涵观测点 |
课程目标 |
计算机科学与技术 |
GR4.3能够对实验结果进行合理分析、解释,并对多个子问题进行关联分析,找出冲突点并进行平衡,通过实验数据分析、信息综合等手段得到合理有效的结论。 |
CO1,CO2,CO3 |
三、实验内容与要求
(一)实验设计
完成4个实验,都是设计研究性实验,设计研究性实验,对于给定的问题,通过研究思考,设计合适解题方法求解,分析复杂性,构建实验系统并获得实验数据并进行分析。
表2 实验内容与课程目标对应关系
实验课程目标 |
对应实验 |
CO1 |
实验1、实验2、实验3、实验4 |
CO2 |
实验1、实验2、实验3、实验4 |
CO3 |
实验1、实验2、实验3、实验4 |
(二)实验内容及要求
表3 实验内容与要求
编号 |
实验项目 |
学时数 |
实验内容 |
实验类型 |
实验要求 |
1 |
词法分析之基于文法的实现 |
6 |
编制一个读单词过程,从输入的C语言源程序中,识别出各个具有独立意义的5类单词,并依次输出各个单词的内部编码及单词符号自身值。 |
设计研究 |
必做 |
2 |
词法分析之基于Lex的实现 |
6 |
用LEX定义简单语言的词法构成,自动生成词法分析程序。 |
设计研究 |
必做 |
3 |
LL(1)分析法程序实现 |
6 |
根据给定文法编制调试LL(1)分析程序,以便对任意输入的符号串进行分析。 |
设计研究 |
必做 |
4 |
LR(1)分析法程序实现 |
6 |
构造LR(1)分析程序,利用它进行语法分析,判断给出的符号串是否为该文法识别的句子 |
设计研究 |
两者选一作为实验4 |
5 |
递归下降分析法程序实现 |
6 |
根据给定文法编制调试递归下降分析程序,以便对任意输入的符号串进行分析。 |
设计研究 |
四、实验设备与环境配置
1.计算机:Intel Core2 Duo E4300 1.8GHZ、内存4G、硬盘500GB以上。
2.编译器:开发语言及环境不限。
五、课程思政、创新创业元素
教学章节 |
知识点 |
思政元素案例 |
培养目标 |
备注 |
实验一 |
词法分析之基于文法的实现 |
抽象思维与问题建模 |
对问题抽象,建立数学模型描述解决问题。 |
|
实验二 |
词法分析之基于Lex的实现 |
词法分析程序的自动生成,寻找解决问题一般方法。 |
从特殊到一般,从具体到抽象归纳思维方法。 |
创新 精神 |
实验三 |
LL(1)分析法程序实现 |
逆序入栈实现最左推导 |
从多个角度思考问题的方法 |
|
实验四 |
LR(1)分析法程序实现 |
实现规范归约 |
从目标句型出发逆向使用推导反推出开始符号,逆向思维法 |
创新 方法 |
|
递归下降分析法程序实现 |
递归过程中每次递归都是对原函数的调用,理解整体和部分的辩证关系 |
建立唯物辩证法中哲学思想整体和部分的联系,指导算法设计。 |
|
六、主要参考资料
[1]陈火旺,刘春林等.程序设计语言编译原理(第3版)[M].北京:国防工业出版社,2000.
[2]前桥和弥.自制编程语言[M].北京:人民邮电出版社,2013.
[3] Alfred V.Aho,Monica S.Lam,Ravi Sethi,Jeffrey D.Ullman. Compilers: Principles, Techniques, and Tools [M]. Addison-Wesly,机械工业出版社,2011.
七、考核方式、方法及实验成绩评定方法
考核成绩可以采用五级制或百分制。课程成绩考核主要由平时表现和实验报告组成。
(一)评分标准
表4 实验评分标准
考核 环节 |
<60 (不及格) |
60-69 (及格) |
70-79 (中等) |
80-89 (良好) |
90-100 (优秀) |
平时 表现 |
不能完成实验内容,程序调试及运行结果基本不正确,不能按时提交实验报告。 |
基本完成实验内容,程序调试及运行结果基本正确,按时提交实验报告。 |
能够完成实验内容,程序调试及运行结果正确,按时提交实验报告。 |
能够较好完成实验内容,程序调试及运行结果正确,方法较好,按时提交实验报告。 |
能够出色完成课内实验内容,程序运行稳定,方法正确,效率高,按时提交实验报告。 |
实验 报告 |
实验报告组织结构不合理,内容不规范或不完整性,逻辑性差。语言表述能力差,算法复杂分析错误或没有,实验结果错误或没有。 |
实验报告组织结构合理性尚可,内容规范完整性尚可,逻辑性尚可。语言表述能力尚可,对算法复杂性进行了一定分析,分析基本正确,实验结果分析较少。 |
实验报告组织结构基本合理,内容基本规范完整,基本符合逻辑性。语言表述能力一般,算法复杂性分析比较全面,分析正确,实验结果分析一般。 |
实验报告组织结构较合理,内容比较规范完整,符合逻辑性。语言表述能力较好,算法复杂性分析比较全面,分析正确,实验结果分析较好。 |
实验报告组织结构合理,内容规范完整,逻辑清晰。语言表述能力出色,算法复杂性分析全面正确,实验结果分析准确,有独到见解。 |
(二)实验项目权重
表5 实验课程目标与实验项目对应关系
实验项目 |
目标1 |
目标2 |
目标3 |
实验1 |
√ |
√ |
√ |
实验2 |
√ |
√ |
√ |
实验3 |
√ |
√ |
√ |
实验4 |
√ |
√ |
√ |
|
100% |
100% |
100% |
撰稿人:张鹏
审核人:
批准人: