课程标准-编译原理-程细柱
《编译原理》课程标准
一、课程概述
“编译原理”主要是以中小型高级程序设计语言为研究对象,介绍从高级语言程序到低级目标程序的主要翻译过程、以及编译器的构造原理和实现方法。
程序设计语言编译器的构造原理和实现方法是软件的核心技术之一,“编译原理”属于计算机科学与应用专业本科教学重要专业课。其的前置课程包括“高级程序设计语言”、“数据结构”、“汇编语言”等。这门课程重点是培养学生在掌握编译的基础知识和基本方法的基础上,同时具有分析和设计中小型编译器的能力,并提高对高级程序设计语言的理解能力和程序设计与应用能力;因此它对学生计算机业务的发展具有极其重要的意义。
二、课程目标
知道“编译原理”这门课程的性质、地位,知道这门课程的研究范围、分析框架、研究方法和应用领域。
汇编语言清华大学出版社
理解这门课程的主要概念、基本原理和方法,尤其是分析、实现与代码生成。学会运用一些具体的词法、语法的分析方法,如:自顶向下的递归下降法和LL分析法、自底向上优先分析法和LR分析法。
学会语义分析和运行时的存储环境的管理。
掌握中间代码生成、中间代码优化、目标代码生成。培养分析和实现中小型编译程序的能力。
三、课程内容与教学要求
这门学科的知识与技能要求分为知道、理解、掌握、学会四个层次。这四个层次的一般涵义表述如下:
知道———是指对这门课程性质、地位、独立价值、研究范围、基本框架、研究方法、学科进展和未来方向等的认知。
理解———是指对这门课程涉及到的概念、原理、策略与技术的说明和解释等有准确的理解。
掌握———是指运用已理解的概念和原理说明、解释、类推同类事件和现象。
学会———是指能模仿或在教师指导下独立地完成某些教学知识和技能的操作任务,或能识别操作中的一般差错,能够把所学的原理应用到具体的实践中去,培养学生发现、分析和解决问题的能力等。
教学内容和要求表中的“√”号表示教学知识和技能的教学要求层次。
本标准中打“某”号的内容可作为自学,教师可根据实际情况确定要求或不布置要求。
教学内容及教学要求表
教学内容1编译器概述1.1编译器和解释器1.2编译器的功能分解和组织结构1.3编译器的伙伴2一个微型编译器2.1基础知识2.2ToyL语言及其词法分析器2.3ToyL语言语法分析器2.4ToyL语言解释器和编译器3有限自动机和词法分析3.1词法分析基础3.2有穷自动机3.3正则表达式4文法与语法分析4.1语法分析4.2文法和文法分析4.3递归下降法-----自顶向下分析4.4LL分析方法-----自顶向下分析4.5LR分析方法-----自底向上分析4.6LR分析器的生成器5语义分析5.1语义分析基础5.2符号表5.3类型分析5.4声明的语义分析5.5执行体的语义分析6
运行时的存储环境6.1运行时的存储空间结构与分配6.2过程活动记录与栈区组织结构6.3运行时的变量访问环境7面向语法的语义描述7.1动作文法及其应用7.2抽象动作文法及其应用7.3属性文法及其应用8中间代码生成8.1中间代码8.2表达式的中间代码生成8.3原子语句的中间代码生成8.4结构语句的中间代码生成√√√知道√√√理解掌握√√√√√√√√√√√√√√√√√√学会√√√√√√√教学内容9中间代码优化9.1优化基本知识9.2常表达式优化9.3公共表达式优化9.4程序流图循环9.5循环不变代码外提10目标代码生成10.1目标代码10.2临时变量和寄存器10.3基于三地址中间代码的目标代码10.4基于AST的代码生成知道理解掌握√√√√√√学会√√√四、课程实施
《编译原理》属于计算机科学与应用专业本科教学主干课程,一般情况下,每周安排4课时,共72课时。函授生视具体情况而定,一般为30课时。具体课时安排如下:
课时安排及教学方法表
课时建议教学内容72课时30课时1编译器概述1.1编译器和解释器1.2编译器的功能分解和组织结构1.3编译器的伙伴2一个微型编译器2.1基础知识2.2ToyL语言及其词法分析器2.3ToyL语言语法分析器2.4ToyL语言解释器和编译器3有限自动机和词法分析3.1词法分析基础3.2
有穷自动机3.3正则表达式4文法与语法分析4.1语法分析4.2文法和文法分析4.3递归下降法-----自顶向下分析4.4LL分析方法-----自顶向下分析4.5LR分析方法-----自底向上分析4.6LR分析器的生成器教与学的方法建议2课时2课时讲述4课时,2课时,讲述和实验2实验2实验课时课时8课时3课时讲述10课时,实验2课时3课时,讲述和实验2实验课时课时建议教学内容72课时30课时5语义分析5.1语义分析基础5.2符号表5.3类型分析5.4声明的语义分析5.5执行体的语义分析6运行时的存储环境6.1运行时的存储空间结构与分配6.2过程活动记录与栈区组织结构6.3运行时的变量访问环境7面向语法的语义描述7.1动作文法及其应用7.2抽象动作文法及其应用7.3属性文法及其应用8中间代码生成8.1中间代码8.2表达式的中间代码生成8.3原子语句的中间代码生成8.4结构语句的中间代码生成9中间代码优化9.1优化基本知识9.2常表达式优化9.3公共表达式优化9.4程序流图循环9.5循环不变代码外提10目标代码生成10.1目标代码10.2临时变量和寄存器10.3基于三地址中间代码的目标代码10.4基于AST的代码生成合计:72课时中含理论课60课时,实验课12课时;30课时中含理论课26课时,实验课4课时。教与学的方法建议6课时,实验23课时课时讲述和实验6课时2课时讲述6课时2课时讲述6课时,实验23课时课时讲述和实验6课时3课时讲述6课时,实验43课时课时讲述和实验五、教材和参考书目