《编译原理》课程大纲2

合集下载

《编译原理》课程教学提纲

《编译原理》课程教学提纲

《编译原理》课程教学大纲一、课程的性质与目的本课程是软件工程专业必修的专业核心课。

本课程的教学目的,是使学生在学习程序设计基础及语言和数据结构的基础上,进一步理解程序及程序设计语言的本质,掌握程序词法分析和句法分析的基本原理和方法。

学会构造一个编译程序,用以将一种语言所编写的程序(如,用C语言编写的程序)等价变换为另一种语言所编写的程序(如,用汇编语言编写的程序),并能对变换过程中所生成的中间代码程序及变换所得的程序进行优化,以培养良好的程序设计优化思维,提高学生的编程能力,为学习有关专业课程和进行大型软件实践打下必要的基础。

二、课程内容的教学要求1. 编译原理及编译程序构造引论(1)开设编译原理课程的主要作用:让学生理解开设编译原理课程的意义和作用,编译原理课程在计算机专业课程体系中的地位,学习编译原理课程应采用的方法,编译原理课程知识体系结构,让学生初步认识学习编译原理课程的重要性和潜在的使用价值。

(2)编译程序及其构造过程概述:介绍编译程序的基本含义、作用和结构,简述编译程序构造的基本过程,以让学生形成编译程序构造的总体印象。

2. (程序设计)语言和语法描述(1)语言描述体系结构:了解语言的语法、语义和语用的基本含义及相互作用,掌握描述语言语法的基本方法和过程,使学生清楚语言语法描述应包括由字符构造单词的词法描述,及由单词构造句子的句法描述。

(2)语言和文法的基本概念:掌握语言与文法的相关基本概念,如,串、句子、句型、文法、产生式、推导与归约等,语言文法对语言语法描述的作用,文法的形式化描述方法和过程,Chomsky形式语言文法体系及其在语言语法描述中的应用、特别是正规文法及上下文无关文法在语言语法描述中的应用。

(3)从语言构造文法:了解常见语言句子构造模式,掌握从典型语言句子模式构造对应无 产生式文法的方法,使学生能够理解由语言构造文法的重要性。

(4)语法树、分析树与二义文法:掌握语法树、分析树及二义文法的基本概念,如,语法树、分析树、短语、句柄、二义文法,语法树在语言语法分析过程中的作用,语法树构造方法和过程,二义文法对语言文法的简化描述的作用。

编译原理教学大纲

编译原理教学大纲

编译原理教学大纲一、课程介绍本课程主要介绍编译原理的相关概念、理论和实践技术,旨在培养学生对编译原理的理解和应用能力。

通过本课程的学习,学生将了解到编译器的工作原理、设计流程和实现方法,掌握常见编程语言的词法分析、语法分析、语义分析和代码生成等基本技术。

二、教学目标1. 熟悉编译原理的基本概念和基础知识;2. 掌握编译器的各个模块的设计和实现方法;3. 能够使用现有编译器工具进行编译器开发和优化;4. 培养学生的编程能力、分析问题和解决问题的能力。

三、教学大纲1. 编译原理基础1.1 编译器的作用和概念- 编译过程及其阶段- 编译器的核心功能1.2 语言文法和自动机理论- 正则文法和有限自动机- 上下文无关文法和下推自动机1.3 词法分析- 正则表达式和有限自动机实现词法分析器 - 关键字、运算符、标识符、字面量的识别 2. 语法和语义分析2.1 自顶向下语法分析- LL(1)文法及其分析方法- 预测分析表和递归下降分析2.2 自底向上语法分析- LR(0)文法及其分析方法- SLR(1)文法和LR(1)文法分析2.3 语义分析与语法制导翻译- 语义动作和属性文法- 语法制导翻译的实现方法3. 中间代码生成与优化3.1 中间代码的表示和生成- 三地址码和虚拟机- 递归下降翻译的中间代码生成3.2 基本块和流图- 基本块的概念和划分- 控制流的分析和优化3.3 数据流分析与优化- 活性变量分析- 常量传播和复写传播优化4. 目标代码生成和优化4.1 目标代码生成的基本原理- 寄存器分配和指令选择- 代码布局和指令调度4.2 目标代码优化- 数据流分析在目标代码优化中的应用- 循环优化和内存优化四、教学方法本课程采用理论课与实践相结合的教学方法。

理论课重点讲解编译原理的基本概念和原理,实践课通过编写实际编译器项目,培养学生的编程和问题解决能力。

五、考核方式1. 平时成绩占比:40%包括课堂参与、作业完成情况和实验报告等。

《编译原理》教学大纲

《编译原理》教学大纲

《编译原理》教学大纲一、课程概述编译原理是计算机科学与技术专业的一门重要课程,也是软件工程领域的基础课程之一、本课程通过对编译器的原理和实现技术的学习,使学生掌握编译器的设计和实现方法,培养学生独立解决实际问题的能力。

二、教学目标1.理解编译器的基本原理和工作流程;2.掌握常见编译器的构建方法和技术;3.能够设计和实现简单的编译器;4.培养分析和解决实际问题的能力。

三、教学内容和教学进度1.第一章:引论1.1编译器的定义和分类1.2编译器的基本工作流程2.第二章:词法分析2.1编译器的基本结构2.2词法单元的定义和识别方法2.3正则表达式和有限自动机3.第三章:语法分析3.1语法分析的基本概念3.2语法规则的定义和表示方法3.3自顶向下的语法分析方法3.4自底向上的语法分析方法4.第四章:语义分析4.1语义分析的基本概念4.2属性文法和语法制导翻译4.3语义动作和符号表管理5.第五章:中间代码生成5.1中间代码的定义和表示方法5.2基本块和控制流图5.3三地址码的生成方法6.第六章:优化6.1优化的基本概念和原则6.2常见的优化技术和方法6.3编译器的优化策略7.第七章:目标代码生成7.1目标代码生成的基本原理7.2目标代码的表示方法和存储管理7.3基本块的划分和目标代码生成算法8.第八章:附加主题8.1解释器和编译器的比较8.2面向对象语言的编译8.3并行编译和动态编译四、教学方法1.理论教学与实践相结合,注重教学案例的分析和实践;2.引导学生主动探索,注重培养学生的自主学习能力;3.激发学生的兴趣,鼓励学生提问和讨论。

五、考核方式1.平时成绩:包括课堂测验、作业和实验报告等;2.期末考试:闭卷笔试,主要考查学生对编译原理的理论知识和实践能力的掌握程度。

六、参考教材1.《编译原理与技术》(第2版),龙书,机械工业出版社,2024年2.《现代编译原理-C语言描述》(第2版),谢路云,电子工业出版社,2024年七、参考资源1. 实验环境:Dev-C++、gcc、llvm等2.相关网站:编译原理教学网站、编译器开源项目等八、教学团队本课程由计算机科学与技术学院的相关教师负责教学,具体安排详见教务处发布的教学计划。

《编译原理》教学大纲

《编译原理》教学大纲

《编译原理》教学大纲大纲说明课程代码: 3225003总学时: 64 学时(讲课 48 学时,实验16 学时)总学分: 4课程类别:学科基础课适用专业 : 计算机科学与技术(专业)预修要求: C 语言程序设计、 C++ 程序设计、数据结构课程的性质、任务及地位:《编译原理》是计算机科学与技术专业的一门重要基础课。

通过对该课程的学习,使学生掌握编译过程中的相关原理和编译技术,让学生能初步进行编译程序的开发和维护,同时促进提高学生开发软件的能力。

教学目的与基本要求:本课程的目的,通过向学生讲述编译系统的结构、工作流程及编译程序各部分的设计原理和实现技术,使学生既掌握编译技术理论的基础与基本知识,也具有设计、实现、分析和维护编译程序等方面的初步能力。

本课程理论性较强。

因授课对象为工科学生,所以在强调编译系统的构造原理和实现方法的同时,为培养学生的实际工作能力,通过上机实践进一步加深学生对课堂教学内容的理解。

目的是要使学生牢固掌握相关的基本理论和基本方法,并能初步利用上述理论和方法解决简单实际问题。

教学方法和教学手段的建议:在教学方法上,贯彻理论联系实际、“精讲、多练”的原则,进行案例式、启发式的教学,对于一些实际性较强的问题要多采用课堂讨论等方式,以提高学生的思辨能力和学习的主动性;引导学生读书、理解、体悟、运用相结合;提高学生的学习兴趣与热情,培养与发挥学生的提出、分析及解决问题的能力。

教学手段:运用多媒体教学手段 +黑板 +上机实验的手段。

采取课堂讲授、课堂讨论、课后练习与自学等形式。

大纲的使用说明:大纲对课程性质、目的等作简单说明,同时列出各章节要学习的知识点、重点、难点,便于教学时教授重点的安排和学生自学安排。

大纲正文第一章引论学时: 4 学时(讲课 4 学时,实验 0 学时)了解编译的概念;理解编译程序的各组成部分及功能。

本章讲授要点:介绍程序设计语言与编译程序间的关系,主要内容包括:各级程序设计语言的定义、源程序的执行、编译程序的构造、编译程序的分类、形式语言理论与编译实现技术的联系。

编译原理_64学时_大纲

编译原理_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.授课语言:选填“中文/双语/全英文或其他语种”二、课程目标2 .学生学习预期成果:描述学生在学完本节内容后应获得的知识、能力或素养水平(下同).教学方式:包括讲授、讨论、案例、演示等,但不限于所列,根据课程实际需要列举实践(实验或实习)教学I2.实验类型:选填”验证性/综合性/设计性”;实习类型:选填“认识实习/生产实习/毕业实习”五、课程评价(一)考核内容、考核方式与课程目标对应关系注:1.课程目标在考核方式及占比:主要根据课程目标自行设计和制定多元化考核方式,表中所列仅为参考(红色数据可删除)。

但所列考核方式必须覆盖全体学生,可根据当学期具体教学情况酌情调整。

2.各考核方式占总成绩权重:根据课程实际情况对各考核方式占总成绩的权重予以赋值。

(二)考核方式评分标准1.课程作业评分标准2.注:考核方式和课程目标在考核方式中占比应与“(一)考核内容、考核方式与课程目标对应关系” 一致。

所列考核环节,除了笔试类均须依次给出评分标准,格式同上。

笔试类课程考核评分标准可以在本课程大纲里进行说明,也可以通过提交“试卷分析表”予以说明。

五、参考书目及学习资料1.[美]安佩尔,现代编译原理:c语言描述,人民邮电出版社,2006.劳顿著,冯博琴等译,编译原理及实践,机械工业出版社,20042.[美]Kenneth C. Louden,编译原理与实践,机械工业出版社,2002注:1 .支撑毕业要求指标点:选填项。

需要进行专业认证,有毕业要求指标点可参照的课程必填,无明确毕业要求指标点可参照的可不填。

三、理论教学内容类、NFA 到DFA 的转.掌握状态转换. Lex 工具的使用4 .理解单词符号 的识别:超前搜索 5.掌握正那么表达 式与正那么定义6 .掌握确定有限 自动机(DFA)7 .掌握非确定有 限自动机(NFA) 8.掌握正那么文法 与有限自动机的 等价性9 .掌握正那么式与 有限自动机的等 价性 10 .掌握确定有 限自动机的化简 11 . 了解 Lex 工 具的使用方法子程序 换、识别DFA图及实现第四章语法分析-自上而下分析1.属性文法第六章 语义分 析、语 法制导 翻译及 中间代 码生成 2 .翻译模式.语义处理 3 .语法制导翻译.中间代码 4 .简单赋值语句的翻译.数组的翻译5 .布尔表达式和控制结构的翻译1 . 了解基于属性文法的处理方法.理解属性的依 赖图和属性计算 方法2 . 了解S-属性文法的自下而上计 算. 了解L.属性文 法和自顶向下翻 译3 .理解自顶向下翻译及常见语言的翻译及中间代 码表示. 了解递归下降 翻译器的设计理 解符号栈的使用 与语法树的表示4 .理解后缀式、图表示法、三地址 代码的中间代码 表示方法.掌握四元式的 表示方法5 .理解说明语句的翻译方法.理解赋值语 句的翻译6 .理解简单算 术表达式及赋值 语句.理解数组元 素的引用7 .掌握控制结讲授、 讨论、 案例、习题课程目标 1, 2素养:科学素质构中的布尔式翻译14.理解简单控制语句的翻译注:1.思政融入点:至少写3条,简述该课程教学中将思政教育内容与专业教育内容有机融合的知识点(下同)。

《编译原理》教学大纲

《编译原理》教学大纲

《编译原理》教学大纲Compiler Principles一、课程性质《编译原理》是高等工科院校“计算机科学与技术”、“软件工程”、“信息安全”等专业的一门重要的必修专业基础课。

所含内容涉及学科抽象、理论、设计三个形态。

在学习编译原理所涉及的知识的同时,掌握问题求解的典型思路和方法,帮助学生从系统层面重新认识程序和算法。

二、课程目标本课程的教学目标是:通过学习该课程,使学生了解形式语言基本概念和术语、掌握词法分析、语法分析、语义分析及中间代码生成、代码优化、符号表管理、存储组织和分配及代码优化的基本原理和实现方法。

通过学习编译程序的构造原理和技术,将有助于深刻理解和正确使用程序设计语言。

除此以外,编译原理课程介绍的一些原理、方法和算法并不局限于编译器的构造,也广泛地应用于其他软件的设计与开发。

本课程具有思想素质、知识技能以及能力培养三个层面的通用课程目标:(一)思想、素质教育目标目标1.1 在教学过程中,激发学生自豪感与爱国情怀,鼓励学生通过努力学习掌握先进科学技术,服务国家,回馈社会。

目标1.2 在教学过程中,通过课程内容与中国传统文化思想相结合,提升学生的学习兴趣、人文关怀和道德情操,真正做到“传道、授业和解惑”。

(二)知识教学目标目标2.1 使学生理解编译系统的工作流程和编译器各功能模块的设计原理,能够利用基本原理和方法识别和分析计算机软件开发领域复杂工程问题。

目标2.2 使学生掌握词法分析器、语法分析器开发方法,能够编写词法分析程序和语法分析程序。

(三)能力教学目标目标3.1使学生理解编译系统的工作流程和编译器各功能模块的设计原理,培养学生抽象思维和逻辑思维能力,能够利用基本原理和方法识别和分析计算机软件开发领域复杂工程问题的特征。

目标3.2 使学生掌握设计、编制、分析和维护编译程序的方法和技术,能够应用这些基本方法和技术分析和解决软件开发中的实际问题,使学生具有系统能力,能站在系统的全局去看问题、分析问题和解决问题。

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

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

《编译原理》教学大纲(供四年制计算机科学与技术(医药软件开发)专业使用)____________________________________________________________________一、前言本课程是计算机专业的重要专业课之一,主要介绍程序设计语言编译构造的基本原理和基本实现方法。

本课程主要讲授形式语言、有限自动机、自上而下和自下而上的语法分析、LR分析方法、属性文法和语法制导翻译、语义分析的蹭代码产生、存储器的动态分配与管理、符号表的组织与管理、优化问题、代码生成等内容。

本课程学生应掌握以下基本概念和原理,语言和文法、正规式、有限状态自动机、递归下降分析、算符优先分析、SLR 文法、代码生成、代码优化。

本课程的重点是突出基本概念、基本原理及算法,通过课堂教学与实践环节的训练,使学生掌握编译实现的基本方法和技术。

本课程的前导课程是计算机组成原理、数据结构、汇编语言程序设计、微机原理、操作系统原理等,并与程序设计语言等课程相关联。

本课程是考试课。

采用综合考核的考试方法,即在课程结束后一次性闭卷考试为主,并结合课堂提问、课后作业、上机作业等方面的考查,综合评定成绩。

本课程教学时数为:计算机科学与技术专业72学时,其中理论学时48,上机24学时。

教学采用课堂讲授法。

二、教学目的要求和内容第一章引论【目的要求】掌握编译的基本概念、编译过程概述、编译程序的结构了解编译程序与程序设计环境,编译程序的构造【教学内容】编译程序工作的基本过程及其各阶段的基本任务,编译程序总体框架。

【教学方法】课堂讲授第二章高级语言及其语法描述【目的要求】掌握程序语言定义、初等数据类型、数据结构熟悉高级高级语言的一般特性、程序结构、语句与控制结构掌握上下文无关文法,语法分析树与二义性。

【教学内容】上下文无关文法,程序语言定义参数传递。

【教学方法】课堂讲授第三章词法分析【目的要求】掌握词法分析器任务掌握词法分析器设计掌握正规表达式与有限自动机熟悉词法分析器自动生成。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《编译原理》课程教学大纲
(课程编号 711302 学分-学时-上机 4.0-64-16)
东南大学计算机科学与工程学院
一、课程的性质与目的
本课程是软件工程专业必修的专业核心课。

本课程的教学目的,是使学生在学习程序设计基础及语言和数据结构的基础上,进一步理解程序及程序设计语言的本质,掌握程序词法分析和句法分析的基本原理和方法。

学会构造一个编译程序,用以将一种语言所编写的程序(如,用C语言编写的程序)等价变换为另一种语言所编写的程序(如,用汇编语言编写的程序),并能对变换过程中所生成的中间代码程序及变换所得的程序进行优化,以培养良好的程序设计优化思维,提高学生的编程能力,为学习有关专业课程和进行大型软件实践打下必要的基础。

二、课程内容的教学要求
1. 编译原理及编译程序构造引论
(1)开设编译原理课程的主要作用:让学生理解开设编译原理课程的意义和作用,编译原理课程在计算机专业课程体系中的地位,学习编译原理课程应采用的方法,编译原理课程知识体系结构,让学生初步认识学习编译原理课程的重要性和潜在的使用价值。

(2)编译程序及其构造过程概述:介绍编译程序的基本含义、作用和结构,简述编译程序构造的基本过程,以让学生形成编译程序构造的总体印象。

2. (程序设计)语言和语法描述
(1)语言描述体系结构:了解语言的语法、语义和语用的基本含义及相互作用,掌握描述语言语法的基本方法和过程,使学生清楚语言语法描述应包括由字符构造单词的词法描述,及由单词构造句子的句法描述。

(2)语言和文法的基本概念:掌握语言与文法的相关基本概念,如,串、句子、句型、文法、产生式、推导与归约等,语言文法对语言语法描述的作用,文法的形式化描述方法和过程,Chomsky形式语言文法体系及其在语言语法描述中的应用、特别是正规文法及上下文无关文法在语言语法描述中的应用。

(3)从语言构造文法:了解常见语言句子构造模式,掌握从典型语言句子模式构造对应无 产生式文法的方法,使学生能够理解由语言构造文法的重要性。

(4)语法树、分析树与二义文法:掌握语法树、分析树及二义文法的基本概念,如,语法树、分析树、短语、句柄、二义文法,语法树在语言语法分析过程中的作用,语法树构造方法和过程,二义文法对语言文法的简化描述的作用。

3. 词法分析
(1)词法分析程序的作用和基本构造过程:让学生掌握词法分析程序的作用和基本构造过程,了解词法分析程序构造的关键问题,如,词法描述方法、由词法描述构造相应词法分析程序的思想方法。

(2)正规表达式、正规语言与正规文法:掌握正规表达式对单词模式表达的作用,由基本字符构造正规表达式的方法和过程,识别一个正规表达式的方法,以及正规语言的基本概念,理解正规表达式、正规语言、正规文法三者之间的等价关系和转换方法。

(3)有限自动机:让学生了解有限自动机对正规表达式识别(也就是单词识别)的作用,掌握有限自动机的基本概念,熟悉由正规表达式构造非确定有限自动机的方法与过程,掌握
将非确定有限自动机确定化的理由、方法与过程,熟悉确定有限自动机最小化的理由、方法和过程,了解正规文法(正规表达式、正规语言)与有限自动机之间的相互转换方法、以及由确定有限自动机构造相应词法分析程序的方法和过程。

(4)词法分析程序生成工具Lex:了解Lex的基本思想和使用方法。

4. 语法(句法)分析
(1)语法分析基本过程和方法概述:进一步理解上下文无关文法与语言语法描述的关联,了解利用下推自动机进行语法分析的基本过程,熟悉典型语法分析方法的基本思想,深刻理解“推导—匹配”、“移进—归约”的语法分析的思想。

(2)自顶向下语法分析:理解自顶向下语法分析方法的基本思想和基本过程,了解基于递归下降分析法构造语法分析程序的基本思想和基本过程,掌握预测分析法LL(1)的基本思想和基本技巧、特别是左递归消除、首符集First和随符集Follow构造的技巧,能够由上下文无关文法构造LL(1)分析表,了解基于LL(1)分析表进行具体句子的分析过程。

(3)自底向上语法分析:理解自底向上语法分析方法的基本思想和基本过程,重点掌握LR分析法的基本思想和基本过程,能够由上下文无关文法构造简单的LR分析表(SLR(1)分析表)和规范的LR分析表(LR(1)分析表),了解由LR(1)构造LALR(1)分析表的基本思想和基本过程。

(4)二义文法的语法分析:掌握语法分析过程解决文法二义性的基本思想,能够通过二义文法的附加条件构造相应的SLR(1) 或LR(1)分析表。

(5)语法分析程序生成工具Y ACC:了解YACC的基本思想和应用过程。

5. 语义分析
(1)属性文法:了解引入符号属性对语言语义描述的作用,理解将上下文无关文法转换为属性文法的意义、过程和关键,掌握属性文法中语义规则的使用方法,理解边进行语法分析、边进行语义分析的语义属性值计算的基本思想。

(2)属性文法中的综合属性值计算方法:能够由只具有综合属性的属性文法构造一个句子的加以属性标注的分析树。

(3)类型检查:了解类型作为一种特殊的属性时的属性计算过程和方法,即,类型检查的基本思想和方法。

6. 中间代码生成
(1)常见中间代码形式:了解常见中间代码形式,掌握三地址码和四元式的基本思想。

(2)典型语句生成三地址码的方法:掌握表达式、基本赋值语句、含有数组元素的语句、If语句、While语句翻译成三地址码的方法,能够将一段含有上述语句的程序翻译成三地址码语句序列。

(3)典型语句生成四元式的方法:掌握表达式、基本赋值语句、含有数组元素的语句、If语句、While语句翻译成四元式的方法,能够将一段含有上述语句的程序翻译成四元式序列,熟悉翻译过程中拉链回填的基本技巧。

7. 运行时环境
(1)程序执行过程与激活树:了解程序在计算机系统中执行过程,掌握激活树概念。

(2)程序运行时数据存储空间分配策略:了解程序运行时数据存储空间分配策略,重点理解栈式存储分配策略。

(3)栈式存储分配策略:掌握活动记录的基本概念,理解C语言程序运行过程中基于活动记录的数据存储分配策略,能够构造一个C语言程序对应的数据存储栈图。

8. 程序优化
(1)程序分块与程序流图:了解程序优化的一般方法和过程,掌握程序基本块的概念,能够将一段程序划分为基本块、并构造以基本块为结点的程序流图。

(2)块内优化:能够构造表示一个基本块所涉及数据量及其关联的有向无环图,掌握
基于有向无环图的块内优化方法,能够对一个基本块进行块内优化并写出优化后的代码序列。

(3)循环优化:掌握必经结点集和回边的基本概念,能够找出程序流图中的循环,了解循环优化的基本方法。

(4)基于数据流分析的优化:了解数据流分析的作用,理解变量引用定值链、定值到达数据流方程、活跃变量数据流方程的含义和作用。

三、上机实习要求
了解程序设计语言的词法和语法(句法)的表示形式,理解词法和语法分析程序的构造方法和过程,了解简单的块内优化方法。

四、能力培养的要求
1. 分析能力的培养:主要是对程序结构、编译程序构造方法和过程、程序优化方法进行分析的能力的培养,同时也要注意培养针对具体程序设计语言构造编译程序的能力的培养。

2. 算法分析和实现能力的培养:要求学生通过本课程的学习,具备对各种相关算法进行实现的能力。

3. 外文文献阅读能力的培养:该课程采用英文教材、英文课件和英文试卷,要求学生通过本课程的学习,能够具备直接阅读专业外文文献的能力。

4. 自学能力的培养:通过本课程的教学,要培养和提高学生对所学知识进行整理、概括、消化吸收的能力,以及围绕课堂教学内容,阅读参考书籍和资料,自我扩充知识领域的能力。

5. 表达能力的培养:主要是通过作业,清晰、整洁地表达自己解决问题的思路和步骤的能力。

6. 创新能力的培养:培养学生独立思考、深入钻研问题的习惯,和对问题提出多种解决方案、选择不同方法,以及对方法进行简化和举一反三的能力。

五、建议学时分配
六、考核方式
总评成绩=平时成绩(包括作业和考勤)+上机实验+期末考试成绩平时成绩占10%
上机试验占20%
期末考试成绩占70%
七、教材及参考书
1、A.V Aho,Ravi Sethi, J.D Ullman. Compilers: Principles, Techniques, and Tools(Second Edition). 人民邮电出版社,2008(影印版)
2、秦振松. 编译原理及编译程序构造. 东南大学出版社,1997
3、陈火旺. 程序设计语言编译原理. 国防工业出版社,2000。

相关文档
最新文档