《编译原理》课程教学大纲--供四年制计算机科学与技术(医药软件开发)专业使用
编译原理课程教学大纲

编译原理课程教学大纲一、课程简介编译原理是计算机及相关专业的重要专业课程,主要介绍程序设计语言编译器构造的基本原理和基本实现方法。
由于这门课程相对抽象且内容复杂,是较难学的一门课程。
编译系统是计算机系统中最重要的系统软件之一,它的基本作用是把高级语言等价地翻译成机器指令形式,从而能够使高级语言写成的程序顺利运行。
因此编译系统是使高级程序设计语言具有生命力的有力保证,对编译系统的理论基础、构造方法、实现技术的研究是计算机科学研究的基本内容。
设置该课程的目的是为了让学生系统地了解并掌握编译程序的构造原理,掌握符号语言的形式化处理的一般方法和步骤,熟悉编译辅助工具如LEX、YACC等。
二、课程目标(一)课程具体目标本课程是软件工程专业的一门重要的专业平台必修课,在该专业人才培养方案和课程体系中具有重要地位,对培养毕业生的专业能力和综合素质具有重要意义。
课程的具体目标如下:1. 掌握软件工程学科的专业核心知识,包括编译器构造的基本原理和基本实现方法,并能够用于解决计算机领域的复杂工程问题。
2. 能够基于软件工程的相关原理和方法,对软件工程复杂工程问题涉及的软件、模块、系统等诸多因素开展技术研究。
3. 能够结合软件工程技术相关问题背景和科学原理,评价平台环境、技术工具和有效资源在问题求解中的局限性。
4. 能够根据软件工程复杂工程问题的设计需要,开发适用工具对工程中的设计进行检验和评价。
(二)课程目标与专业毕业要求的关系表1 本课程对专业毕业要求及其指标点的支撑(三)课程对解决复杂工程问题能力的培养这门课程关注的是编译器方面的产生原理和技术问题,似乎和计算机的基础领域不沾边,可是编译原理却一直作为大学本科的必修课程。
在课程理论知识讲授环节,注重培养学生对高级语言编译原理和编译技术的深入理解,使学生掌握解决复杂工程问题所需的基本理论和工程原理,并通过适当的课后作业锻炼和检验学生解决复杂工程问题的能力。
在实验教学环节,以培养学生解决复杂工程问题的能力为目标,围绕课程目标安排实验项目,设计实验内容,明确实验要求,指导实验实施,严格实验成果考核。
编译原理理论教学大纲

《编译原理》教学大纲课程编号:课程名称:编译原理/Compiler Principles学时/学分:56/3.5(含实验 8学时)先修课程:高级程序设计语言、汇编语言、离散数学、数据结构、计算机组成原理适用专业:计算机科学与技术、软件工程开课单位:计算机科学与技术学院计算机科学系、计算机技术系一、本课程的性质与任务本课程是计算机类专业的一门必修的重要核心专业基础课。
随着计算机技术的迅猛发展,计算机已深入到人类社会的各个领域。
编译系统是现代计算机系统的基本组成之一,编译程序构造的基本原理和技术不仅应用于编译程序的设计,也广泛应用于一般软件的设计和实现。
通过本课程的学习,旨在使学生掌握编译的基本理论、原理和技术,并对编译程序有较为具体的认识。
使学生能运用所学过的基本知识、着手开发系统程序,为今后的工作(技术和理论研究)打下基础。
具体为:(1)编译程序基本结构及构造的基本原理和技术;(2)文法、形式语言及自动机的基本概念和在编译程序构造中的应用;(3)典型的几种语法分析方法的基本原理和实现方法;(4)属性文法和语法制导方法在语义分析中的应用和中间代码生成方法;(5)存储分配的基本思想和实现方法;(6)代码优化及代码生成的方法;二、本课程的教学内容,基本要求及学时分配(一)教学内容1.编译原理概论翻译程序、编译程序、解释程序,编译系统在计算机系统中的作用,编译系统的组成及各部分完成的任务。
2.文法和语言符号串、符号串集合及其运算、推导与归约,句型与句子;文法和语言的形式定义;文法的类型,语法树及其二义性;短语、简单短语和句柄;句型的分析。
3.词法分析词法分析程序与语法分析程序的接口方式和输出;正规式与正规集;确定的有穷自动机(DFA),不确定的有穷自动机(NFA);NFA→DFA的转换,确定有穷自动机的化简;正规式与有穷自动机的等价性及转换,正规文法与有穷自动机的等价性及转换;自动机用于词法分析4.自顶向下语法分析方法确定的自顶向下分析思想;自顶向下语法分析方法原理与思想;自顶向下语法分析方法的关键;FIRST、FOLLOW、SELECT三种集合的定义与构造,LL(1)文法的判别,预测分析法5.自底向上语法分析方法自底向上分析的一般过程自底向上语法分析方法原理与思想;自底向上语法分析方法的关键;简单优先分析方法:优先关系;简单优先文法的定义;简单优先关系矩阵的构造,简单优先分析方法的实现;LR分析方法:可归前缀、活前缀和LR项目,识别活前缀的有限自动机构造方法,LR(0)项目集规范族的构造,LR(0)分析表的构造,SLR(1)分析表的构造6.属性文法和语法制导翻译属性文法;语法制导翻译概念;文法与属性文法的关系基于属性文法的处理方法;属性计算的基本思想;翻译模式及其实现思想;属性文法和语法制导方法在语义分析中的应用7.语义分析和中间代码生成语义分析概念,明确语义分析在编译过程所处的阶段和作用。
编译原理 课程教学大纲

一、课程性质、目的与任务编译原理课程是计算机科学与技术专业学生的专业骨干课之一。
通过学习这门课程,使学生掌握编译程序的基本原理、方法和实现技术,使学生更好的理解程序语言的内部机制,培养学生初步掌握设计大型系统软件的方法、技术以及设计大型软件的能力。
二、教学基本要求1)正确理解什么是编译程序;了解编译程序工作的基本过程及其各阶段的基本任务;熟悉编译程序总框;了解编译程序的生成过程和构造工具。
2)正确理解上下文无关文法基本概念,包括:文法的定义、编写、句型、句子、语言、语法树、二义性等;能进行各种文法等价变换;熟练掌握NFA、DFA、正则表达式和正则文法之间的等价关系,能够进行相互转换,掌握DFA的最小化算法。
3)理解词法分析器功能及形式;熟练掌握词法分析器设计的原理,掌握运用状态转换图进行词法分析器设计。
4)正确理解自上而下分析的基本思想;熟练掌握递归下降分析基本方法:消除左递归和公共前缀,消除回溯,构造递归下降子程序;掌握LL(1)分析程序的基本原理和LL(1)分析表构造;理解LL(1)方法的定义。
5)正确理解自下而上语法分析的基本思想,以及归约、短语、句柄、分析树等概念;掌握简单优先分析基本方法:简单优先关系矩阵;LR类语法分析的基本思想及其分析表的构造,掌握LR类语法分析的基本过程。
6)理解符号表的作用及符号表组织和使用方法,了解名字的作用范围,了解符号表中一般应包含的内容。
7)正确理解语法制导翻译基本原理;熟悉常见的几种中间语言:四元式、三元式、逆波兰表示;掌握各种语句到四元式的翻译方法,包括:简单算术表达式,布尔表达式,控制语句,数组引用,过程调用等。
了解自上而下分析制导翻译基本思想和实现方法。
8)正确理解代码优化的定义和各种可能的优化概念;掌握基于基本块的局部优化方法。
9)正确理解目标程序运行进存储空间的使用和组织管理方式;理解静态分配和动态存储分配基本思想;掌握栈式存储分配的处理方式;掌握栈式动态分配中活动记录和DISPLAY表作用、组织、内容及使用;了解嵌套过程语言程序运行时整个运行栈的内容的组织。
编译原理--教学大纲

编译原理教学大纲编译原理是计算机、软件专业设置的一门专业基础核心课程。
和操作系统一样,编译系统是计算机关键基础软件,是程序员与计算机之间的接口。
编译原理是一个优秀程序员应掌握的专业基础知识。
该课程将为学生在理论、技术、方法等方面提供系统而有效的训练,有利于提高计算机、软件人员的素质和能力。
课程概述本课程旨在系统地向学生讲述编译程序的结构及其各组成部分的设计原理与实现技术,使学生掌握编译程序的基本原理、方法和实现技术,更好的理解程序语言的内部机制、理解计算机软硬件系统的基本架构与工作原理,培养学生设计、实现和分析简单编译软件的能力,并能在思维素质方面得到拓展提高,进一步理解计算机学科中解决问题的思路方法。
课程主要讲授:自动机与形式语言基础;词法分析;语法分析;语法制翻译与中间代码生成;中间代码优化等。
授课目标了解计算机高级语言源程序被计算机接受、扫描、词法分析、语法分析、语义解释执行的原理与过程;掌握编译的原理和基本算法、各种概念和语言描述。
课程大纲01绪论课时1.1 课程简介1.2 编译过程1.3 高级程序语言简介02程序语言概论课时2.1 程序语言的定义2.2 文法的形式化定义和分类2.3 文法和语言2.4 语法分析树2.5 小结03词法分析_1课时3.1 词法分析概述3.2.1 状态转换图3.2.2 小结3.3.1 正规式与正规集3.3.2 确定有限自动机3.3.3 非确定有限自动机04词法分析_2课时3.3.4 正规式和有限自动机的等价性05词法分析_3课时3.3.5 DFA的化简06词法分析_4课时3.4.1 词法分析器的自动生成3.4.2 词法分析程序实现实例3.4.3 小结07语法分析--自上而下分析_1课时4.1 语法分析简介4.2 自顶向下分析简介4.3.1 消除左递归和回溯08语法分析--自上而下分析_2课时4.3.2 LL(1)分析法的工作过程4.3.3 FIRST集和FOLLOW集的构造09语法分析--自上而下分析_3课时4.3.4 LL(1)分析表的构造4.4.1 递归子程序的原理4.4.2 递归下降分析程序构造10语法分析--自下而上分析_1课时5.1.1 自下而上分析方法的基本思想5.1.2 分析树与规范规约5.1.3 符号栈的使用11语法分析--自下而上分析_2课时5.2.1 算符优先文法5.2.2 优先表构造5.2.3 算符优先分析算法12语法分析--自下而上分析_3课时5.3.1 LR分析器5.3.2 LR分析过程(1)5.3.2 LR分析过程(2)13语法分析--自下而上分析_4课时5.3.3 构造识别活前缀的DFA5.3.4 LR(0)项目集规范族构造5.3.5 由DFA构造LR(0)分析表14语法分析--自下而上分析_5课时5.3.6 SLR(1)分析法的思想5.3.7 SLR(1)分析表的构造5.3.8 二义文法的使用15属性文法和语法翻译制导_1课时6.1 属性文法的定义6.2 语法制导翻译6.3 属性文法的自上而下的计算16属性文法和语法翻译制导_2课时6.4 属性文法和自顶向下翻译6.5 自下而上计算继承属性6.6 小结17语义分析和中间代码生成_1课时7.1 语义分析的任务7.2 中间代码形式7.3 算术表达式和赋值语句18语义分析和中间代码生成_2课时7.4.1 布尔表达式的作用和文法描述7.4.2 做控制用布尔表达式的翻译(回填)7.5.1 控制流语句的翻译7.5.2 控制流语句的翻译(回填)19代码优化_1课时8.1 什么是代码优化8.2 局部优化-基本块及流图20代码优化_2课时8.3 局部优化-基本块DAG及应用(1)8.4 局部优化-基本块DAG及应用(2)预备知识掌握计算机程序设计语言和程序设计知识,了解微机原理、组成原理、数据结构、离散数学以及操作系统等知识。
《编译原理》理论教学大纲

《编译原理》理论教学大纲(2001年制订,2004年修订)课程编号:英文名:Compiling Principle课程类别:专业主干课前置课:程序设计基础、数据结构、汇编语言、离散数学后置课:无学分:4学分课时:72课时(其中理论教学54课时,实验教学18课时)主讲教师:苏杭丽等选定教材:吕映之,张素琴,蒋维杜.编译原理.北京:清华大学出版社, 2001年.课程概述:本课程是计算机科学与技术专业的专业主干课程,介绍了程序设计语言编译程序构造的一般原理、基本设计方法、主要实现技术方法和一些自动构造工具,如:语言基础知识、词法分析、语法分析、有限自动机理论、形式语言的识别、语义检查、运行时的存储管理、代码优化和代码生成以及整个编译程序的构造过程。
教学目的:掌握编译程序构造的一般原理、基本设计方法、主要实现技术和一些自动构造工具,巩固《程序设计语言》、《数据结构》、《汇编语言》、《离散数学》等基础知识,能将编译程序中的概念和技术应用于一般的软件设计之中,能够独立完成小型编译程序。
教学方法:理论讲课与上机实验结合。
首先从剖析一个简单的编译程序(PL/0)入手,对编译程序设计的基本理论,如有穷自动机、上下文无关文法等给予必要的介绍;对于广泛使用的语法分析和语义分析技术,如递归子程序法、算符优先分析、LR分析及语法指导翻译等进行了详细讲解;对编译程序的结构及其各部分功能、实现方法以及整体的设计考虑等给予描述。
此外,还介绍了编译原理的构造工具。
“编译原理”是一门对实践性要求较高的课程,教学中设置了实验课,强化对理论的理解。
各章教学要求及教学要点第一章编译程序概论课时分配:2课时教学要求:了解什么是编译程序;了解编译过程。
教学内容:第一节什么是编译程序一、编译程序的基本知识第二节编译过程概述一、词法分析阶段二、语法分析三、语义分析阶段四、中间代码生成五、代码优化六、目标代码生成第三节编译程序的结构一、编译程序的6个基本过程二、编译程序的两个管理功能第四节编译阶段的组合一、编译的前端二、编译的后端第五节编译技术和软件工具一、语言的结构化编辑器二、语言的调试工具三、语言的测试工具四、高级语言之间的转换工具五、并行编译技术思考题:1.编译程序的工作过程包括哪几个基本阶段?2.介绍词法分析的概念。
《编译原理》教学大纲

《编译原理》教学⼤纲《编译原理》教学⼤纲适⽤专业:软件⼯程专业总学时:(讲授/理论40学时,实验/技术/技能0学时,上机/课外实践0学时)先修课程:《C语⾔程序设计》、《离散数学》、《汇编语⾔程序设计》、《数据结构》(⼀)本课程地位、性质和任务《编译原理》课程是计算机专业学⽣的⼀门重要专业基础课,通过本课程学习,使学⽣掌握编译程序的⼀般构造原理,包括语⾔基础知识、词法分析程序设计原理和构造⽅法。
各种语法分析技术和中间代码⽣成符号表的构造、代码优化、并⾏编译技术常识及运⾏时存储空间的组织等基本⽅法和主要实现技术。
使学⽣掌握编译程序构造的基本原理、设计⽅法和实现技术,具有设计、实现、分析和维护编译程序德⽅⾯的基本技能,为今后从事应⽤软件和系统软件的开发打下⼀定的理论和实践基础。
它有⼀定的理论性,尤其是本课程的知识与计算机应⽤中很多领域有紧密联系与⼴泛应⽤。
了解与掌握本课程的基本内容将有利于学⽣提⾼专业素质和适应社会多⽅⾯需要的能⼒。
培养学⽣掌握构造编译程序的基本原理与设计⽅法,为培养计算机语⾔与⼤型应⽤程序的开发⼈才打下良好的基础。
(⼆)课程教学的主要内容及基本要求第1章概述1.1程序设计语⾔与编译程序1.2编译过程和编译程序的结构1.3编译程序的设计1.4编译程序的发展及应⽤第2章⾼级语⾔设计基础2.1符号和符号串2.2⽂法与语⾔2.3⾼级语⾔的设计2.4语⾔设计实例第3章词法分析3.1词法分析的任务和功能3.2词法分析器的设计3.3正规⽂法、正规式与有穷⾃动机3.4词法分析程序的⾃动⽣成第4章语法分析4.1语法分析概述4.2⾃上⽽下的语法分析4.3⾃下⽽上的语法分析4.4语法分析器的⾃动⽣成⼯具YACC4.5语法分析程序中的错误处理第5章语义分析和中间代码⽣成5.1概述5.2属性⽂法和语法制导的翻译5.3常见语句的语法制导的翻译5.4Sample语⾔语法制导的翻译程序的设计第6章运⾏时存储空间的组织6.1程序执⾏时的活动6.2程序执⾏时的存储器组织6.3静态存储分配6.4栈式存储分配策略6.5堆式存储分配第7章代码优化7.1概述7.2局部优化7.3循环优化第8章⽬标代码⽣成8.1概述8.2⽬标机器8.3简单的代码⽣成算法8.4从DAG⽣成⽬标代码8.5Sample代码优化及⽬标代码⽣成器的设计本课程的教学⼤纲是按编译程序的设计流程顺序展开的。
编译原理课程教学大纲教案

编译原理课程教学大纲教案《编译原理》课程教案一、课程基本信息课程编号:10134045课程类别:专业课适用于专业:计算机科学与技术学分:理论教学学分3学分总学时:48学时其中理论学时:48学时;实验学时:0学时先修成课程:c语言程序设计、数据结构、汇编语言程序设计时程课程:课程简介:本课程就是计算机专业的一门很关键的专业课,主要了解编程理论基础知识,词法分析、自上而下语法分析、优先分析法、自下而上语法分后法、中间代码生成、代码优化和目标代码生成的基本理论和基础知识。
主要教学方法与手段:课堂多媒体课件结合黑板板书。
教材:1.薛联凤、秦振松,《编程原理及编译程序结构》(第二版),东南大学出版社,2021。
选修书目:1.吕映芝、张素琴等编著,《编译原理》,清华大学出版社,2021。
2.陈火旺等编著,《程序设计语言与编译原理(第3版)》,国防工业出版社,20213.张幸儿,《计算机编程理论》(第三版),科学出版社,2021。
二、课程总目标:本课程教学目标是使学生理解编译的基本理论知识和实现方法,了解自动机语言的形式化定义、编译技术的各种概念以及具体实现过程的方法。
从形式语言理论角度讨论词法分析和语法分析技术,为学生将来从事系统软件开发打下良好的基础。
三、课程教学内容与教学要求1、教学内容与学时分配课程总学时:64学时,其中讲授学时:48学时;实验(上机)学时:16学时第1页共8页教学内容与学时分配建议如下表中:学时分配序序教学章节名称教学章节名称号谈实号课验第六章lr分析法及分析1第一章讲义26程序自动结构第七章语法制导译者并2第二章编程基础知识47产生中间代码第八章运转时数据区的3第三章词法分析68管理4第四章自上而下语法分析69第九章中间代码优化1第十章目标代码生成5第五章优先分析法602、教学要求:合计学时分配讲实课验8824248第一章引论(2学时)教学目标:介绍编译程序与高级程序设计语言的关系;编程和表述的概念;编译程序的几个阶段所顺利完成的任务及撰写编译程序的主要方法;认知编程理论和课堂教学结合的重要性;掌控编程的各个阶段及其主要任务教学内容:第一节程序设计语言与编程一、程序设计语言二、编译的概念三、编译的过程第二节编译程序概述一、词法分析二、语法分析三、中间代码生成四、优化五、目标代码生成六、表格与表格管理七、失效处置八、不下第三节编译程序的构造第2页共8页一、编译程序的生成方法二、编译程序的设计方法教学要求:重点介绍编译的概念;编译的几个阶段及其所需完成的任务。
编译原理_64学时_大纲

《编译原理》教学大纲课程编号: 052168课程名称:编译原理英文名称:Principles of Compilers课程类型: 专业课总学时:64 讲课学时:48 实验学时:16学分: 3.5适用对象:计算机科学与技术专业第一部分大纲说明一、课程的性质、目的和任务本课程是计算机科学与技术专业的专业课。
主要讲授编译技术的基本原理、编译程序的组成及编译程序的开发,让学生充分认识和了解程序设计语言编译程序的基本结构各部分的功能,使学生掌握设计和构造程序语言编译系统的基本原理和技术。
二、课程的基本要求了解:形式语言理论、编译器的开发原理。
掌握:掌握词法分析、语法分析、标符处理、中间语言生成的一般原理简单运用:代码优化的方法、编译器的开发方法熟练运用:词法分析、语法分析、标符处理、中间语言生成的方法三、本课程与相关课程的联系本课程的先修课程有:《离散数学》、《高级语言程序设计》、《数据结构》等。
四、学时分配五、教材与参考书教材:《程序设计语言编译原理》陈火旺等,国防工业出版社参考书:1.《编译原理》陈意云等,高等教育出版社2.《编译原理》吕映芝等,清华大学出版社六、教学方法与手段建议以课堂讲授为主,学生独立完成实验,布置一定量的课后习题。
讲课要求使用多媒体投影仪等教学设备。
七、课程考核方式本课程为考试课程,期末考试为闭卷笔试。
学生的课程总评成绩由平时成绩占30%(包括:出勤、作业、实验等)和期末考试成绩占70%两部分构成。
第二部分课程内容大纲第1章概述(2学时)一、本章的教学目的和要求:了解翻译与解释程序的特点,掌握源程序分析,了解编译的阶段二、教学内容及要求:内容:1、解释程序与编译程序;2、编译过程和编译程序的结构;3、解释程序和一些软件工具;要求:1、了解编译原理课程内容;2、了解编译器的整体构造。
第2章文法和语言(4学时)一、本章的教学目的和要求:掌握高级语言的基本特征,掌握文法的形式定义,熟练掌握上下文无关文法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《编译原理》教学大纲
(供四年制计算机科学与技术(医药软件开发)专业使用)____________________________________________________________________
一、前言
本课程是计算机专业的重要专业课之一,主要介绍程序设计语言编译构造的基本原理和基本实现方法。
本课程主要讲授形式语言、有限自动机、自上而下和自下而上的语法分析、LR分析方法、属性文法和语法制导翻译、语义分析的蹭代码产生、存储器的动态分配与管理、符号表的组织与管理、优化问题、代码生成等内容。
本课程学生应掌握以下基本概念和原理,语言和文法、正规式、有限状态自动机、递归下降分析、算符优先分析、SLR 文法、代码生成、代码优化。
本课程的重点是突出基本概念、基本原理及算法,通过课堂教学与实践环节的训练,使学生掌握编译实现的基本方法和技术。
本课程的前导课程是计算机组成原理、数据结构、汇编语言程序设计、微机原理、操作系统原理等,并与程序设计语言等课程相关联。
本课程是考试课。
采用综合考核的考试方法,即在课程结束后一次性闭卷考试为主,并结合课堂提问、课后作业、上机作业等方面的考查,综合评定成绩。
本课程教学时数为:计算机科学与技术专业72学时,其中理论学时48,上机24学时。
教学采用课堂讲授法。
二、教学目的要求和内容
第一章引论
【目的要求】
掌握编译的基本概念、编译过程概述、编译程序的结构
了解编译程序与程序设计环境,编译程序的构造
【教学内容】
编译程序工作的基本过程及其各阶段的基本任务,编译程序总体框架。
【教学方法】
课堂讲授
第二章高级语言及其语法描述
【目的要求】
掌握程序语言定义、初等数据类型、数据结构
熟悉高级高级语言的一般特性、程序结构、语句与控制结构
掌握上下文无关文法,语法分析树与二义性。
【教学内容】
上下文无关文法,程序语言定义参数传递。
【教学方法】
课堂讲授
第三章词法分析
【目的要求】
掌握词法分析器任务
掌握词法分析器设计
掌握正规表达式与有限自动机
熟悉词法分析器自动生成。
【教学内容】
词法分析器的任务与设计,状态转换图。
【教学方法】
课堂讲授
第四章语法分析—自上而下分析
【目的要求】
熟悉语法分析器的功能,
掌握自上而下语法分析(递归下降分析法,预测分析程序),
掌握LL(1)分析法,递归下降分析程序构造,
掌握预测分析程序,
掌握自上而下分析的错误诊察,语义错误诊察。
【教学内容】
递归下降子程序,预测分析表构造,LL(1)文法。
【教学方法】
课堂讲授
第五章语法分析—自下而上分析
【目的要求】
掌握自下而上语法分析(算符优先分析法)
掌握LR分析器,LR(0)项目集族和LR(0)分析表的构造
熟悉SLR分析表的构造,规范LR分析表的构造
熟悉出错处理概述,词法分析阶段的错误诊察,语法分析(自下而上)阶段的错
误诊察
了解语法分析器自动产生工具YACC。
【教学内容】
归约,算符优先表构造,LR分析法。
【教学方法】
课堂讲授
第六章属性文法和语法制导翻译
【目的要求】
掌握属性文法
掌握基于属性文法的处理方法
掌握S-属性文法的自下而上计算
掌握L-属性文法的自顶向下翻译,自下而上计算继承属性。
【教学内容】
语法制导翻译基本思想,语法制导翻译概述,基于属性文法的处理方法,自下而
上分析制导翻译概述。
【教学方法】
课堂讲授
第七章语义分析和中间代码产生
【目的要求】
掌握中间语言
了解说明语句,赋值语句的翻译
熟悉布尔表达式的翻译,控制语句的翻译
掌握过程调用的处理各种常见中间语言形式,各种语句到四元式的翻译
【教学内容】
三种中间语言:四元式、三元式、逆波兰表示,算术表达式的翻译,布尔表达式
的翻译,控制语句的翻译。
【教学方法】
课堂讲授
第八章符号表
【目的要求】
掌握符号表的组织与作用,整理与查找
掌握名字的作用范围,符号表的内容。
【教学内容】
符号表的作用与内容。
【教学方法】
课堂讲授
第九章运行时存储空间组织
【目的要求】
熟悉目标程序运行时的活动
了解目标程序运行时存储器的划分
熟悉静态存储管理
熟悉简单的栈式存储分配的实现
熟悉嵌套过程语言的栈式实现,堆式动态存储分配
【教学内容】
静态分配策略和动态分配策略基本思想,嵌套过程语言栈式分配,活动记录、运
行时栈的组织。
【教学方法】
课堂讲授
第十章优化
【目的要求】
熟悉优化概述
熟悉局部优化
熟悉基本块的DAG表示及其应用
熟悉控制流分析和循环查找算法,到达定值与引用定值链,循环优化
【教学内容】
局部优化;DAG的构造与应用。
【教学方法】
课堂讲授
第十一章代码生成
【目的要求】
熟悉目标机器模型
了解简单代码生成器,寄存器分配,DAG目标代码,窥孔优化
【教学内容】
简单代码生成器,寄存器分配策略。
【教学方法】
课堂讲授
第十二章并行编译基础
【目的要求】
熟悉并行计算机及其编译系统
掌握并行编译的基本技术
【教学内容】
计算机及其编译系统。
【教学方法】
课堂讲授
讲授为主,辅以课堂讨论和练习,上机实验。
本课程注重理论和实际的结合,只有学生完成好实验后才能对软件编译的基本原理有深刻的认识,编程语言可选用PASCAL语言或C 语言。