《编译原理》教学大纲
《编译原理》课程教学大纲
《编译原理》课程教学大纲Compiler Principles课程编号:130301006学时:48学分:3适用对象:软件工程.计算机科学与技术.网络工程.物联网工程.医学信息工程.数字媒体技术(理科)先修课程:高级语言程序设计.数据结构.离散数学一、课程的性质和任务根据培养方案中课程体系与培养要求的对应关系矩阵,该课程可以支撑毕业要求第1.2.3条的达成。
《编译原理》课程是计算机科学与技术专业学生的一门重要专业必修课,它在计算机系统软件中占有十分重要的地位。
它既有很强的理论性,又有一定的实践性,尤其是该课程所涉及的知识内容与计算机科学技术中的其他众多学科联系紧密,并在很多领域有着广泛的应用,其基本原理与技术对软件开发有很好的启发和指导作用。
学习和掌握好本课程的基本原理与技术,将有利于提高学生的专业素质.培养学生进行系统分析和软件设计的能力。
本课程主要学习编译程序的设计与实现的一般原理.基本方法和主要实现技术。
二、教学目的与要求本课程的教学目的是介绍程序设计语言编译程序构造的基本原理和设计方法,通过本课程的学习,学生应该能够正确理解什么是编译程序,了解编译程序工作的基本过程及其各阶段的基本任务,熟悉编译程序总体框架,掌握编译程序构造的一般原理.基本设计方法和主要实现技术,巩固《高级语言程序设计》.《数据结构》.《离散数学》等基础知识,能将编译程序中的概念和技术应用于一般的软件设计之中,能够独立完成小型编译程序。
三、教学内容第一章:概述1.基本内容:编译程序的基本概念,编译过程,编译程序的结构,编译程序和程序设计环境,编译程序的生成过程和构造工具2.教学基本要求:正确了解什么是编译程序,了解编译程序工作的基本过程几个阶段的基本任务,熟悉编译程序总框。
3.教学重点难点:编译过程和编译程序的结构。
4.教学建议:注重介绍课程特点.在人才培养中的作用,学生在学习中要注意的问题,使学生掌握基本的概念和系统总体结构以激发学习兴趣。
编译原理教学大纲
编译原理教学大纲一、引言编译原理是计算机科学中的重要学科之一,它研究程序语言的编写、编译和执行过程。
本教学大纲旨在帮助学生理解并掌握编译原理的基本概念、技术和应用。
通过系统学习编译原理,学生将能够设计和实现高效的编译器,提高程序开发和执行的效率。
二、教学目标1. 理解编译原理的基本概念和原理;2. 掌握常见的扫描和解析技术;3. 学会构建语法分析树和语法制导翻译;4. 理解编译器的优化和代码生成技术;5. 能够使用编译器生成工具进行程序开发。
三、教学内容1. 编译原理概述1.1 编译原理的定义和重要性1.2 编译器的基本结构和工作原理2. 正则表达式与有限自动机2.1 正则表达式的定义和应用2.2 有限自动机的定义和实现3. 词法分析3.1 词法分析的基本概念和任务3.2 正则表达式与有限自动机在词法分析中的应用3.3 词法分析器的设计和实现4. 上下文无关文法与语法分析4.1 上下文无关文法的定义和产生式表示4.2 语法分析的基本概念和任务4.3 自顶向下语法分析和递归下降分析法4.4 自底向上语法分析和LR分析法5. 语义分析5.1 语义分析的基本概念和任务5.2 抽象语法树的构建和遍历5.3 语义检查和类型推断5.4 中间代码生成6. 优化与代码生成6.1 编译器优化的基本原理和方法6.2 中间代码优化技术6.3 目标代码生成和优化7. 符号表管理7.1 符号表的定义和作用7.2 符号表的实现和管理7.3 作用域和命名空间的处理8. 实践项目8.1 实现简单的编译器前端8.2 使用编译器生成工具进行程序开发四、教学方法1. 理论讲授:通过教师讲解,向学生介绍编译原理的基本概念、原理和技术。
2. 示例演示:通过实例和案例分析,展示编译器的设计和实现过程。
3. 实践项目:引导学生参与编译器前端的实现和应用开发,提高实际操作能力。
4. 小组讨论:组织学生进行小组讨论,分享思考和解决问题的经验。
五、评价方式1. 平时作业:包括理论习题、实践代码和文档撰写等,占总成绩的40%。
《编译原理》课程教学提纲
《编译原理》课程教学大纲一、课程的性质与目的本课程是软件工程专业必修的专业核心课。
本课程的教学目的,是使学生在学习程序设计基础及语言和数据结构的基础上,进一步理解程序及程序设计语言的本质,掌握程序词法分析和句法分析的基本原理和方法。
学会构造一个编译程序,用以将一种语言所编写的程序(如,用C语言编写的程序)等价变换为另一种语言所编写的程序(如,用汇编语言编写的程序),并能对变换过程中所生成的中间代码程序及变换所得的程序进行优化,以培养良好的程序设计优化思维,提高学生的编程能力,为学习有关专业课程和进行大型软件实践打下必要的基础。
二、课程内容的教学要求1. 编译原理及编译程序构造引论(1)开设编译原理课程的主要作用:让学生理解开设编译原理课程的意义和作用,编译原理课程在计算机专业课程体系中的地位,学习编译原理课程应采用的方法,编译原理课程知识体系结构,让学生初步认识学习编译原理课程的重要性和潜在的使用价值。
(2)编译程序及其构造过程概述:介绍编译程序的基本含义、作用和结构,简述编译程序构造的基本过程,以让学生形成编译程序构造的总体印象。
2. (程序设计)语言和语法描述(1)语言描述体系结构:了解语言的语法、语义和语用的基本含义及相互作用,掌握描述语言语法的基本方法和过程,使学生清楚语言语法描述应包括由字符构造单词的词法描述,及由单词构造句子的句法描述。
(2)语言和文法的基本概念:掌握语言与文法的相关基本概念,如,串、句子、句型、文法、产生式、推导与归约等,语言文法对语言语法描述的作用,文法的形式化描述方法和过程,Chomsky形式语言文法体系及其在语言语法描述中的应用、特别是正规文法及上下文无关文法在语言语法描述中的应用。
(3)从语言构造文法:了解常见语言句子构造模式,掌握从典型语言句子模式构造对应无 产生式文法的方法,使学生能够理解由语言构造文法的重要性。
(4)语法树、分析树与二义文法:掌握语法树、分析树及二义文法的基本概念,如,语法树、分析树、短语、句柄、二义文法,语法树在语言语法分析过程中的作用,语法树构造方法和过程,二义文法对语言文法的简化描述的作用。
《编译原理》课程教学大纲
《编译原理》课程教学大纲(Principles of Compiler)课程性质: 专业课适用专业: 计算机科学与技术先修课程:PASCAL语言程序设计或C语言程序设计、离散数学、数据结构后续课程:总学分:4学分(其中实验0.5)一、教学目的与要求1.教学目的编译原理是计算机科学与技术专业中的一门很重要的专业课程,它在系统软件中占有十分重要的地位,是计算机科学与技术专业学生的一门主修课。
通过本课程的学习,使学生掌握编译理论基础,包括词法分析、语法分析、中间代码生成、代码优化和目标代码生成。
理解编译的实现方法,了解自动机语言的形式化定义、编译技术的各种概念以及具体实现过程的方法。
从形式语言理论角度讨论词法分析和语法分析技术,为学生从事系统软件开发打下良好的基础。
2.教学要求编译原理是一门重要的专业选修课程,本课程将以课堂讲授为主,讲授编译系统的一般构造原理、基本实现技术和一些自动构造工具,布置一定量的作业,配合相应的实验,帮助学生理解有关编译的基本概念,甚至更深入地理解编程语言。
从而使学生的编程能力得到真正的锻炼与提高。
二、课时安排三、教学内容1.引论(4学时)(1)教学的基本要求了解:编译程序与高级程序设计语言的关系;编译和解释的概念;编译程序的几个阶段所完成的任务及编写编译程序的主要方法理解:编译理论和实践相结合的重要性掌握:编译的各个阶段及其主要任务(2)教学内容①程序设计语言与编译②编译程序概述③编译程序的生成④编译程序的构造2.编译基础知识(4学时)(1)教学的基本要求了解:文法的分类;闭包、正闭包、文法、语言、推导、归约、语法树、二义文法的概念,无ε产生式的文法及文法的简化理解:文法与语言的关系掌握:文法与语言的形式化定义以及它们之间的关系,二义文法,短语、简单短语的概念(2)教学内容①字母表、符号表、闭包②文法与语言的关系③文法构造与文法简化④语法树、短语、简单短语、二义文法3.词法分析(6学时)(1)教学的基本要求了解:正规文法、正规集、正规式的概念;理解:词法分析扫描器的设计。
编译原理教学大纲
编译原理教学大纲一、课程介绍本课程主要介绍编译原理的相关概念、理论和实践技术,旨在培养学生对编译原理的理解和应用能力。
通过本课程的学习,学生将了解到编译器的工作原理、设计流程和实现方法,掌握常见编程语言的词法分析、语法分析、语义分析和代码生成等基本技术。
二、教学目标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 学时)了解编译的概念;理解编译程序的各组成部分及功能。
本章讲授要点:介绍程序设计语言与编译程序间的关系,主要内容包括:各级程序设计语言的定义、源程序的执行、编译程序的构造、编译程序的分类、形式语言理论与编译实现技术的联系。
《编译原理》实验教学大纲
《编译原理》实验教学大纲一、实验目的和任务编译原理是计算机科学与技术专业的一门重要课程,它主要研究的是将高级语言程序翻译成机器语言程序的方法和技术。
通过本实验课程的学习,旨在使学生掌握编译原理的基本原理和方法,培养学生对编译器结构与构造技术的专门知识和技能,为学生今后进行编译器设计与实现打下基础。
二、实验设备和工具1.计算机和相关硬件设备2. 编程语言的开发环境,如C/C++或Java三、实验内容1.实验一:词法分析器设计与实现a)实验目的:学习词法分析器的原理和设计方法,掌握正则表达式、DFA和NFA的转换方法。
b)实验任务:i.设计并实现一个词法分析器的原型,能够正确地识别出给定的程序中的词法单元。
ii. 使用给定的正则表达式设计并实现识别给定程序中的关键字、标识符、常量等的词法分析器。
2.实验二:语法分析器设计与实现a)实验目的:学习语法分析器的原理和设计方法,掌握上下文无关文法和LR分析表的构造方法。
b)实验任务:i.学习并理解上下文无关文法和LR分析表的构造方法。
ii. 设计并实现一个简单的递归下降语法分析器。
3.实验三:语义分析器设计与实现a)实验目的:学习语义分析器的原理和设计方法,掌握语义动作的定义和处理方法。
b)实验任务:i.学习并理解语义分析器的原理和设计方法。
ii. 设计并实现一个简单的语义分析器,能够对给定的程序进行语义分析和语义动作的处理。
4.实验四:中间代码生成器设计与实现a)实验目的:学习中间代码生成器的原理和设计方法,掌握中间代码的生成和优化方法。
b)实验任务:i.学习并理解中间代码生成器的原理和设计方法。
ii. 设计并实现一个简单的中间代码生成器,能够将给定的程序翻译成中间代码。
5.实验五:目标代码生成器设计与实现a)实验目的:学习目标代码生成器的原理和设计方法,掌握目标代码的生成和优化方法。
b)实验任务:i.学习并理解目标代码生成器的原理和设计方法。
ii. 设计并实现一个简单的目标代码生成器,能够将中间代码翻译成目标代码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《编译原理》教学大纲一课程简介本课程是计算机科学与技术专业的专业核心课程。
本课程主要讲述高级语言翻译为汁算机能执行的代码的原理、过程、方法和技术,核心是介绍髙级语言到汇编语言的翻译。
让学生理解编译和高级语言程序之间的关系, 掌握词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等各个阶段的原理、方法和实现技术,真正认识计算机信息处理的实质、训练抽象思维能力、体验系统软件的开发过程,进一步提升计算机科学与技术的专业素养。
二课程目标(一)课程具体目标1.掌握形式语言和自动机的基本概念,理解高级语言编译的基本原理,并能够将这些原理应用于高级语言的设计之中;(毕业要求1.3掌握汁算机基础理论,能够用于对计算机应用系统的设计方案和模型进行推理和验证。
)2.能够理解现有某高级语言的编译系统中各模块的功能和实现方法,能够对不同方法的优劣进行对比和分析:(毕业要求4.1能够运用科学方法,对计算机领域的复杂工程问题进行需求和功能分析。
)3.理解编译程序的结构及各个模块的功能,利用软件工程方法分析和设计某语言的编译程序的各个模块,并能够选择合适的方法实现。
(毕业要求1.4能够运用专业知识,对计算机领域复杂工程问题的解决方案进行分析、改进。
)(二)课程目标与毕业要求的关系本课程目标主要支撑的毕业要求指标点如表1所示。
除表1所列举指标点外,根据学生特点、本课程教学特色,教学目标还涉及对毕业要求5 (选择和使用现代工具)等能力培养,为弱支撑,不在表1中列举。
(三)教学内容安排总体思路本课程的教学内容,以课程具体目标为总体指导进行制左。
通过形式语言与自动机的相关基础知识、高级语言到汇编语言的翻译原理、方法和实现技术等教学内容,传授基于某种髙级语言编译程序构造的一般原理和基本方法, 如词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等各个阶段的原理等知识,从而有针对性地培养学生模型构建能力(课程目标1)、系统分析能力(课程目标2)和方案选择与实现能力(课程目标3)。
为达成课程具体目标,教学内容中除安排课内讲授知识外,还包括课程作业和课内实验,旨在巩固课堂传授知识点,使学生在面对计算机复杂工程问题时,能将编译技术合理运用于该类工程的设计实现之中,进行解决方案的分析和改进,并进行合理的需求分析、功能分析和验证。
本课程的教学内容不仅完全覆盖课程拟达成的具体目标,同时,根据计算机科学与技术专业人才培养总体目标,以及课程所面向学生特点,课程内容还涉及计算机体系结构、汇编语言、项目管理等内容,旨在培养知识交叉应用、沟通交流等综合工程能力。
三教学内容及基本要求(一)编译程序的基本概念(4学时)主要内容:(重点覆盖课程目标1)⑴程序设计语言及翻译程序。
⑵编译系统。
⑶编译过程和编译程序的结构。
⑷编译程序的构造方法。
⑸认识髙级语言:结构、构成成分和语言规范。
⑹编译程序的发展。
1 •基本要求⑴了解编译技术的发展,编译程序的构造方法。
⑵掌握高级语言程序编译系统,编译过程,程序设汁语言的结构和规范。
⑶掌握编译过程和编译程序的结构。
2.重点、难点重点:高级语言的编译过程。
难点:编译程序的结构,高级语言的编译过程。
3.作业及课外学习要求作业:了解有关髙级语言的编译系统,认识给泄高级语言代码的编译过程及结果。
(二)词法分析(8学时)(重点覆盖课程目标1, 3)主要内容:⑴词法分析槪述。
⑵高级语言中的单词。
⑶单词的识别。
⑷词法分析器的设计。
⑸正则表达式与有穷自动机。
⑹词法分析器的自动生成工具。
1.基本要求⑴了解词法分析器自动生成工具。
⑵了解高级语言中单词的种类。
⑶掌握利用状态转换图识别单词的方法。
⑷掌握利用正则表达式进行单词识别的原理和方法。
2.重点、难点重点:状态转换图,有穷自动机。
难点:正则式转NFA, NFA转DFA, DFA最小化。
3.作业及课外学习要求作业:画状态转换图,将自然语言转换为正则表达式,正则式到确定的最小化DFA的转换。
课外学习要求:上网查阅资料,多种不同的词法分析自动生成器的使用方法。
(三)语法分析(10学时)(重点覆盖课程目标1, 3)主要内容:⑴语法分析概述。
⑵上下文无关文法。
⑶自上而下语法分析方法:递归下降分析法和预测分析方法,LL(1)文法。
⑷自下而上的语法分析,移进-归约的规范方法,算符优先、LR方法。
⑸语法分析的自动生成器。
⑹语法分析器的设计。
1.基本要求⑴了解语法分析自动生成器。
⑵掌握上下文无关文法相关概念,熟悉用上下文无关文法建义某种高级语言的语法结构。
⑶掌握自上而下语法分析的特点,对文法的要求,能用两种不同的自上而下分析方法对给定的文法进行判断和分析。
⑷掌握自下而上语法分析的基本概念和特点,掌握用两种不同的自下而上分析方法,能对给定的文法进行判断和分析。
2.重点、难点重点:上下文无关文法的基本概念,LL(1)文法,OPG文法,LR文法,各种文法的分析的基本算法。
难点:对文法进行判断和分析。
3.作业及课外学习要求作业:给泄某髙级语言的特左语法成分对应的文法,能对文法进行各种判断和分析。
课外学习要求:通过完成作业和实验,进一步掌握不同语法分析适合于不同种类的文法的要求。
通过网络搜索,了解各种不同的语法分析自动生成器。
(四)语义分析(3学时)(重点覆盖课程目标1, 3)主要内容:⑴语义分析槪述。
⑵某高级语言各种语法成分的语义描述。
⑶符号表管理技术。
⑷静态语义检查技术。
⑸语义分析器的设让。
1.基本要求⑴掌握语义分析的相关槪念。
⑵掌握符号表管理技术。
⑶掌握静态语义检查的相关方法和技术。
⑷熟悉某种具体的高级语言对语义的要求。
2.重点、难点重点:髙级语言的语义描述方法,符号表管理技术。
难点:符号表管理技术、静态语义检査技术。
3.作业及课外学习要求作业:对某特泄高级语言的语法成分进行静态语义检査。
课外学习要求:熟悉不同的髙级语言的语义描述。
(五)中间代码生成(8学时)(重点覆盖课程目标1, 4)主要内容:⑴中间代码生成概述。
⑵属性文法的基本概念,高级语言语法成分的语义表示。
⑶中间代码及其各种形式。
⑷声明语句、算术表达式和布尔表达式、控制语句、函数的目标结构和翻译方法。
1.基本要求⑴掌握中间代码的形式,语法制导的翻译方法。
⑵掌握属性文法的槪念,能用属性文法表示某高级语言特泄语法成分的语义信息。
⑶掌握高级语言各种语法成分的翻译技术。
⑷中间代码生成器的设计。
2.重点、难点重点:用属性文法描述各种语法成分的语义信息,各种语法成分语法制导的翻译方法。
难点:用属性文法描述各种语法成分的语义信息。
3.作业及课外学习要求作业:将高级语言的特定语法成分翻译为特定的中间代码形式。
课外学习要求:熟悉中间代码形式,调试程序,将特定高级语言的特圧语法成分翻译为中间代码。
(六)运行时存储组织(2学时)(重点覆盖课程目标1, 4)主要内容:⑴存储器组织。
⑵函数调用相关概念。
⑶存储分配策略。
⑷垃圾回收机制。
1.基本要求⑴了解垃圾回收机制。
⑵掌握程序运行时存储器的划分,活动记录。
⑶掌握函数调用方式及相关概念。
⑷理解各种存储分配方式,掌握栈式存储分配策略。
2.重点、难点重点:程序运行时存储器的划分,函数调用机制,栈式存储分配策略。
难点:函数的相关概念,函数运行时的存储分配。
3.作业及课外学习要求作业:函数运行时存储器变化。
课外学习要求:上网查阅存储分配的相关信息。
(七)代码优化(2学时)(重点覆盖课程目标1, 4)主要内容:⑴基本块的划分,程序流图。
⑵局部优化技术。
⑶循环优化技术。
1.基本要求⑴掌握基本块的划分方法,画程序流图。
⑵掌握局部优化技术。
⑶掌握全局优化技术。
2.重点、难点重点:基本块划分,流图,优化技术。
难点:基本块划分。
3.作业及课外学习要求作业:对给左的程序划分基本块,画出流图。
课外学习要求:上网查阅更多的代码优化技术。
(八)目标代码生成(3学时)(重点覆盖课程目标1, 4)主要内容:⑴目标代码生成器概述。
⑵目标机器结构及指令系统。
⑶简单的代码生成技术。
⑷基本块的代码生成方法。
⑸从DAG生成目标代码的方法。
⑹目标代码生成器的设计。
1.基本要求⑴了解目标代码生成器所涉及到的相关信息。
⑵熟悉某种目标机器结构及指令系统。
⑶掌握简单的代码生成技术。
⑷掌握引用信息、活跃信息,寄存器描述器和地址描述器,基本块的代码生成技术。
⑸了解从DAG生成目标代码的方法。
⑹熟悉目标代码生成器的设计方法。
2.重点、难点重点:简单代码生成技术、基本块的代码生成技术。
难点:引用信息、活跃信息,寄存器描述器和地址描述器。
3.作业及课外学习要求作业:能够对给立的中间代码生成目标代码。
课外学习要求:上网查阅目标代码生成的方法。
(九)课程实验实验一:词法分析实验(6学时)实验内容:(重点覆盖课程目标2, 3)设汁并实现sample语言或者其他高级语言的词法分析器,读入源程序,根据对应髙级语言的构词规则拆分出单词。
英中用状态转换图的方法实现词法分析实验2学时, 用自动生成器实现词法分析程序4学时。
实验二:语法分析实验(6学时)实验内容:(重点覆盖课程目标2, 3)利用自上而下的方法,或者自下而上的语法分析方法,设让并实现sample语言或者其他语言的语法分析器"其中需要分别实现算术表达式、布尔表达式、控制语句的语法分析。
实验三:语义分析实验(2学时)实验内容:(重点覆盖课程目标2, 3)根据给泄语言的静态语义要求,设汁并实现sample语言或者英他语言的静态语义检査程序。
实验四:中间代码生成实验(6学时)实验内容:(重点覆盖课程目标2, 3)利用属性文法和语法制导翻译方法,设计并实现sample语言或者北他语言的中间代码生成器。
其中需要分别实现算术表达式、布尔表达式、控制语句的中间代码生成。
实验五:运行时存储组织实验(2学时)实验内容:利用YC++或者其他语言的反汇编程序查看C语言程序生成的汇编代码,观察程序在内存中的存储情况。
实验六:代码优化(2学时)实验内容:(重点覆盖课程目标2, 3)设计基本块的DAG代码优化器。
实验七:目标代码生成实验(2学时)实验内容:(重点覆盖课程目标2, 3, 4)根据简单代码生成器的生成算法,设计并实现目标代码生成器,将中间代码转换为汇编代码。
四教学安排及教学方式总学时64学时,其中,讲授40学时,实验(上机)24学时。
讲授环节主要采用教师讲解、演示、互动的教学形式。
教师讲解知识点、演示程序代码,使学生对知识点形成直观印象,并通过课堂教学双方互相提问,与学生互动,鼓励学生在课堂上发表自己的见解,加深对知识点的理解,达到课程目标。
上机环节主要采用教师安排任务、学生自主上机练习,教师现场指导、答疑的形式。
上机练习可利用实验室电脑或学生个人电脑编程,通过安装在本地的编译环境进行上机练习。