《编译原理》教学大纲

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《编译原理》教学大纲一、课程概述“编译原理”主要是以中小型高级程序设计语言为研究对象,介绍从高级语言程序到低级目标程序的主要翻译过程、以及编译器的构造原理和实现方法。程序设计语言编译器的构造原理和实现方法是软件的核心技术之一,“编译原理”属于计算机科学与应用专业本科教学重要专业课。其的前置课程包括“高级程序设计语言”、“数据结构”、“汇编语言”等。这门课程重点是培养学生在掌握编译的基础知识和基本方法的基础上,同时具有分析和设计中小型编译器的能力,并提高对高级程序设计语言的理解能力和程序设计与应用能力;因此它对学生计算机业务的发展具有极其重要的意义。二、课程目标知道“编译原理”这门课程的性质、地位,知道这门课程的研究范围、分析框架、研究方法和应用领域。理解这门课程的主要概念、基本原理和方法,尤其是分析、实现与代码生成。学会运用一些具体的词法、语法的分析方法,如:自顶向下的递归下降法和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课时讲述2一个微型编译器2.1基础知识2.2ToyL语言及其词法分析器2.3ToyL语言语法分析器2.4ToyL语言解释器和编译器4课时,实验2课时2课时,实验2课时讲述和实验3有限自动机和词法分析3.1词法分析基础3.2有穷自动机3.3正则表达式8课时3课时讲述4文法与语法分析4.1语法分析4.2文法和文法分析4.3递归下降法-----自顶向下分析4.4LL分析方法-----自顶向下分析4.5LR分析方法-----自底向上分析4.6LR分析器的生成器10课时,实验2课时3课时,实验2课时讲述和实验5语义分析5.1语义分析基础5.2符号表5.3类型分析5.4声明的语义分析5.5执行体的语义分析6课时,实验2课时3课时讲述和实验6运行时的存储环境6.1运行时的存储空间结构与分配6.2过程活动记录与栈区组织结构6.3运行时的变量访问环境6课时2课时讲述7面向语法的语义描述7.1动作文法及其应用7.2抽象动作文法及其应用6课时2课时讲述教学内容课时建议教与学的方法建议72课时30课时7.3属性文法及其应用8中间代码生成8.1中间代码8.2表达式的中间代码生成8.3原子语句的中间代码生成8.4结构语句的中间代码生成6课时,实验2课时3课时讲述和实验9中间代码优化9.1优化基本知识9.2常表达式优化9.3公共表达式优化9.4程序流图循环9.5循环不变代码外提6课时3课时讲述10目标代码生成10.1目标代码10.2临时变量和寄存器10.3基于三地址中间代码的目标代码10.4基于AST的代码生成6课时,实验4课时3课时讲述和实验合计:72课时中含理论课60课时,实验课12课时;30课时中含理论课26课时,实验课4课时。五、教材和参考书目1.金成植、金英编《编译程序设计原理》,高等教育出版社,2007年版。2.张素琴、吕映芝等,《编译原理(第2版)》,清华大学出版社,2005版。六、课程评价1.这门学科的评价依据是本课程标准规定的课程目标、教学内容和要求。2.考试时间:120分钟。3.考试方式、分制与分数解释。采用闭卷+笔试的期终考试、实验考核和平时成绩(主要为作业和实验报告)相结合方式评定学生成绩。以百分制评分,60分为及格,满分为100分。其中,平时成绩为10分,实验考核为20分,期终考试卷面为70分。4.题型:判断题,名词解释,填空题,简述题,证明题和综合题等。A.判断题:(着重考查学生对知识的识别程度)例:消除左递归法一定能将非LL(1)文法变换为LL(1)文法。()B.名词解释:(着重考查学生对知识的理解程度)例:素短语C.填空题:(着重考查学生对知识的理解程度)例:属性文法中的属性分为:和。D.简述题:(着重考查学生对知识的理解与掌握程度)例:试写出下面源程序的目标程序。read(a);C:=a*4;write(C)E.证明题:(着重考查学生对知识的理解与掌握程度)例:已知如下文法G[S]:SABBA、Aa、Aλ、Bb、Bλ证明其不是LL(1)文法。F.综合题:(着重考查学生对知识的理解与掌握程度)例:已知文法G[S]:E-E|(E)|VarEtail、Etail-E|λ、VaridVtail、Vtail(E)|λ(1)计算该文法G的Predict集;(2)判断G是否是LL(1)文法;(3)如果是,构造LL(1)分析表。制定该课程标准小组成员:审核者:

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功