《编译原理》教学大纲设计_第1页
《编译原理》教学大纲设计_第2页
《编译原理》教学大纲设计_第3页
《编译原理》教学大纲设计_第4页
《编译原理》教学大纲设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

适用文档《编译原理》教课纲领纲领说明课程代码:3225003总学时:64学时(授课48学时,实验16学时)总学分:4课程类型:学科基础课合用专业:计算机科学与技术(专业)预修要求:C语言程序设计、C++程序设计、数据结构课程的性质、任务及地位:《编译原理》是计算机科学与技术专业的一门重要基础课。经过对该课程的学习,使学生掌握编译过程中的有关原理和编译技术,让学生能初步进行编译程序的开发和保护,同时促使提升学生开发软件的能力。教课目标与基本要求:本课程的目的,经过向学生叙述编译系统的结构、工作流程及编译程序各部分的设计原理和实现技术,使学生既掌握编译技术理论的基础与基本知识,也拥有设计、实现、剖析和保护编译程序等方面的初步能力。本课程理论性较强。因授课对象为工科学生,因此在重申编译系统的结构原理和实现方法的同时,为培育学生的实质工作能力,经过上机实践进一步加深学生对讲堂教课内容的理解。目的是要使学生坚固掌握有关的基本理论和基本方法,并能初步利用上述理论和方法解决简单实质问题。教课方法和教课手段的建议:在教课方法上,贯彻理论联系实质、“精讲、多练”的原则,进行事例式、启迪式的教学,关于一些实质性较强的问题要多采纳讲堂议论等方式,以提升学生的思辩能力和学习的主动性;指引学生念书、理解、体悟、运用相联合;提升学生的学习兴趣与热忱,培育与发挥学生的提出、剖析及解决问题的能力。教课手段:运用多媒体教课手段+黑板+上机实验的手段。采纳讲堂讲解、讲堂议论、课后练习与自学等形式。纲领的使用说明:纲领对课程性质、目的等作简单说明,同时列出各章节要学习的知识点、重点、难点,便于教课时教授重点的安排和学生自学安排。纲领正文第一章引论学时:4学时(授课4学时,实验0学时)认识编译的观点;理解编译程序的各构成部分及功能。本章讲解重点:介绍程序设计语言与编译程序间的关系,主要内容包含:各级程序设计语言的定义、源程序的履行、编译程序的结构、编译程序的分类、形式语言理论与编译实现技术的联系。大全适用文档重点:程序设计语言的定义,语法图及BNF表示法,编译程序的各阶段功能。难点:程序履行的方式、编译程序“趟”的观点。第一节程序设计语言与编译程序的联系一、源程序、程序设计语言的履行二、编译程序的两种方式:解说与编译三、编译程序的定义第二节编译程序结构及有关观点四、程序设计语言的四个方面:语法、语义、语用、语境五、语法的定义:语法图、BNF表示法、口语六、程序履行的过程七、编译程序的构成模块:词法剖析、语法剖析、语义剖析、代码优化、目标代码生成八、“趟”的观点九、编译程序的分类第三节形式语言与编译实现技术思虑题:1.编译原理的定义是什么?2.编译原原因几部分构成?各部分达成哪些工作?3.在编译过程中“趟”的观点是指什么?第二章文法与语言学时:8学时(授课6学时,实验2学时)理解字母表的定义及闭包、符号串的基本知识及其运算、符号串会合观点及运算;掌握文法的形式定义、Chomsky语言的分类、文法等价及其等价变换方法、语法剖析树与句型剖析。本章讲解重点:字母表的定义及闭包、符号串的基本知识及其运算、符号串会合观点及运算、文法的形式定义、Chomsky语言的分类、文法等价及其等价变换方法、语法剖析树与句型剖析。重点:Chomsky文法的定义、文法和语言之间的关系、规范推导和规范规约、文法的二义性判断;文法的化简。难点:句型剖析、文法的文法的二义性判断、文法等价及其等价变换方法。第一节符号串与符号串会合一、字母表的定义、字母表的闭包与正闭包二、符号串及其运算第二节文法与语言的形式定义一、文法的形式定义、重写规则的表示形式二、文法的定义、应用文法产生语言的句子三、语言的形式定义第三节语言的分类一、Chomsky语言分类法二、Chomsky的文法定义三、上下文没关的议论第四节文法等价与等价变换大全适用文档一、文法等价二、压缩文法等价变换三、消去单规则等价变换四、消去左规则等价变换第五节语法剖析树与句型剖析一、语法剖析树二、句型剖析思虑题:1.弄清字母表、字符串会合、字符串闭包及正闭包的定义。2.弄清文法、重写规则与语言之间的关系。3.Chomsky语言类有几类?各有什么特色?4.什么是无用规则,怎样除去?5.弄清在推导语法树中,弄清句型、短语、简单短语、句柄以及句子的观点。第三章词法剖析学时:14学时(授课10学时,实验4学时)认识词法剖析的目标和实现方法、词法剖析器的目标是辨别源程序中的各个单词。理解确立有限自动机的构成和非确立有限自动机的构成。掌握状态变换图、状态变换图与正则文法的互相变换、确立有限自动机和非确立有限自动机、NFA转DFA、DFA的最小化、正则表达式与正则集、正规式转DNF。本章讲解重点:词法剖析器的目标是辨别源程序中的各个单词。词法剖析能够经过确立有限自动机来达成。:状态变换图、状态变换图与正则文法的互相变换、确立有限自动机和非确立有限自动机、NFA转DFA、DFA的最小化、正则表达式与正则集。词法剖析程序的实现与编写,以及词法扫描程序的算法。重点:状态变换图、正则文法与状态变换图的交换、NFA转DFA、DFA的最小化。正则表达式与状态变换图。难点:NFA转DFA、DFA的化简、正则文法与正则表达式。第一节前言一、词法剖析的任务、词法剖析程序二、符号的辨别与重写规则的关系三、词法剖析的实现方式第二节正则表达式与有穷状态自动机一、状态变换图、状态变换系统二、确立有穷状态自动机DFA三、非确立有穷状态自动机NFA四、DFA的化简五、正则表达式第三节词法剖析程序的实现一、单词与属性字二、表记符的办理三、词法剖析程序的编写第四节词法剖析程序的自动生成一、基本思想大全适用文档二、扫描程序与结构程序三、自动生成系统LEX思虑题:1.词法剖析的功能是什么?2.什么是状态变换图、NFA、DFA?3.怎样将NFA变换为DFA?4.怎样简化DFA?5.正则表达式与DFA有何关系?第四章语法剖析——自顶向下的语法剖析技术学时:6学时(授课6学时,实验0学时)认识语法剖析的功能和两中大的剖析方法:自顶向下的语法剖析法和自下而上的语法分析。理解自上而下的剖析方法---从文法的开始符号推导出句子自己的剖析方法,自下而上的剖析方法—从语句归约为文法开始符号的剖析原理。掌握FELLOW()和FIRST()的算法、展望剖析表的结构和展望剖析过程。本章讲解重点:自顶向下的语法剖析法带回溯自顶向下剖析技术、无回溯顶向下剖析技术及其算法、递归降落剖析法和展望剖析法,展望剖析法的文法要求、剖析表的结构方法、展望剖析方法。重点:无回溯的递归降落剖析技术与展望剖析法。难点:LL(1)文法的判断、展望剖析法、递归降落剖析法。第一节前言一、自顶向下剖析技术及辨别算法二、议论的前提三、要解决的基本问题第二节带回溯的自顶向下剖析技术一、基本思想二、实现算法及举例三、问题及其解决第三节无回溯的自顶向下剖析技术一、先决条件二、递归降落剖析技术三、展望剖析技术思虑题:1.何为自顶向下剖析技术?2.怎样差别带回溯自顶向下剖析技术与无回溯顶向下剖析技术?3.什么是剖析表的结构方法?4.什么是展望剖析方法?第五章语法剖析——自底向上剖析技术学时:16学时(授课10学时,实验6学时)理解自底向上的语法剖析法及算法、自底向上的语法剖析的基本实现方法;掌握LR分析原理及构成、LR(0)项目集规范族的结构、LR(0)剖析表的结构、、SLR(k)剖析表构大全适用文档造方法、LAL(k)剖析表结构方法、辨别程序的自动结构。本章讲解重点:自底向上的语法剖析法及算法、自底向上的语法剖析的基本实现方法;LR(k)剖析技术、SLR(k)剖析表结构方法、LALR(k)剖析表结构方法、辨别程序的自动结构。重点:简单优先剖析技术的实现、LR(k)剖析技术。难点:LR(1)剖析表的结构、除去文法的左递归。第一节概括一、自顶向下剖析技术及辨别算法二、议论的前提三、要解决的基本问题第二节简单优先剖析技术(自学)一、优先关系与优先文法二、简单优先剖析技术三、优先函数第三节算符优先剖析技术(自学)一、算符文法二、算符优先关系与算符优先文法三、算符优先文法句型的辨别四、算符优先技术与简单优先技术的比较第四节LR(K)剖析技术四、LR(K)文法与LR(K)剖析技术五、SLR(K)剖析表结构方法六、LALR(K)剖析表结构方法七、辨别程序的自动结构思虑题:1.什么是自底向上的语法剖析法?2.LR(k)剖析技术是什么?3.SLR(k)剖析表结构方法是什么?4.LAL(k)剖析表结构方法是什么?第六章语义剖析与目标代码生成学时:12学时(授课8学时,实验4学时)认识语义剖析的观点;理解属性文法和属性翻译文法的观点、抽象语法树、逆波兰表示法、四元式序列、三元式序列;掌握算术表达式的翻译、布尔表达式的翻译、条件语句和循环语句的翻译。认识说明部分的翻译;数组的翻译、过程语句和过程调用的翻译来论述语法制导翻译模式和怎样生成之间代码。本章讲解重点:属性文法、语义剖析的观点、说明部分的翻译;目标代码的生成:虚构机、控制语句的翻译;源程序的内部中间表示:抽象语法树、逆波兰表示法、四元式序列、三元式序列。、数组的翻译、过程语句和过程调用的翻译来论述语法制导翻译模式和怎样生成之间代码。重点:属性文法、属性翻译文法、简单算术表达式和赋值语句的翻译、布尔表达式的翻译、条件语句的翻译、循环语句的翻译、数组的翻译、过程语句和过程调用的翻译。难点:语句的语法制导翻译、属性文法和属性翻译文法、常有的中间语言简介、简单算大全适用文档术表达式和赋值语句的翻译、布尔表达式的翻译、各样语句的翻译。第一节概括一、语义剖析二、属性文法三、种类体系与语义剖析第二节说明部分的剖析一、常量定义的翻译二、变量定义的翻译三、函数定义的翻译四、结构体种类的翻译第三节目标代码的生成一、概略二、控制语句的翻译第四节源程序的内部中间表示一、抽象语法树二、逆波兰表示法三、四元式序列四、三元式序列思虑题:1.弄清有关观点:说明剖析树、综合属性、继承属性、依靠图等。2.控制语句的翻译重点十什么?3.种类表达式及其等价性是指什么?4.四元式序列与三式序列有何差别?第七章运转环境(自学2学时)认识运转环境的有关问题;理解储存分派策略:静态储存分派,栈式储存分派,堆式存储分派。本章讲解重点:运转环境的有关问题;储存分派策略:静态储存分派,栈式储存分派,堆式储存分派;符号表的引进、组织及数据结构;运转时刻支持系统。自学要求:在学习该章节内容时应当将实践环节中所用的有关储存技术加以考虑。重点:运转时的内存的区分、活动记录、运转时的分派策略。难点:栈式储存分派和堆式储存分派、储存组织、运转时的分派策略。第一节前言第二节储存分派策略一、静态储存分派二、栈式储存分派三、堆式储存分派第三节符号表一、符号表的组织二、符号表的数据结构第四节运转时刻支持系统思虑题:大全适用文档1.运转时内存怎样区分?2.弄清各各储存分派策略。3.弄清观点:环境、状态、联合、悬空引用、运转时刻支持环境。第八章:代码优化学时:4学时(授课4学时,实验0学时)认识代码优化的含义。理解从语法制导阶段的优化方法到相对中间代码的优化方法:强度削弱、常数归并和常数流传、无用变量和无用代码删除。掌握以基本信息块和循环体内的代码优化来进行。本章讲解重点:代码优化的分类、代码优化程序的结构;基本块的优化、线性窥孔优化方法、基本信息块优化、循环块的区分、循环内的优化。重点:线性窥孔优化,鉴于结构信息的优化、循环块的区分和循环优化。难点:鉴于结构信息的优化、循环块的区分。语法制导阶段的优化、线性窥孔优化及基本信息块的优化。第一节概括一、优化分类二、代码优化程序的结构第二节基本块与流图一、基本块优化的种类二、基本块优化的实现第三节与循环有关的优化一、循环优化的种类二、循环优化的实现第四节窥孔优化一、冗余指令删除二、控制流优化三、代数化简思虑题:1.代码优化分哪几类?2.弄清有关观点:基本块、流图、无环路有向图dag、公共子表达式、窥孔优化等。3.代码优化程序由几部分构成?各功能是什么?本课程对学生自学的要求:因为本课程理论比较抽象,它是计算机专业课中教难学的课程。讲堂上不必定能将问题完整弄懂,而课程内容前后有关,要修业生课后要进行复习。同时,该课程有上机实践,要修业生自己去复习C语言和数据结构方面的知识,独立达成4个上机实践。故该课程对学生自学能力要求较高。课时数分派表:章节内容学时数第一章引论4第二章前后文没关文法和语言8(6+2)大全适用文档第三章词法剖析14(10+4)第四章语法剖析(自顶向下)6(6+0)第五章语法剖析(自底向上)16(10+6)第六章语义剖析12(8+4)第七章远行环境0(自学)第八章代码优化4(4+0)共计64(48+16)查核方式与要求:查核由平常成绩和期末考试综合评论。此中,期末考试占成绩的70%,平常成绩占30%,平常成绩由作业、上机实验、讲堂问答等3部分构成。参照书目:1.张幸儿编《计算机编译原理》科学第一版社2003年第2版2.蒋立源、康慕宁编《编译原理》西北工业大学第一版社2002年第2版3.陈火旺、刘春林等编《编译原理》国防工业第一版社2001年第3版4.吕映芝、张素琴等编《编译原理》清华大学第一版社2001年第15版5.伍春香编《编译原理---习题与分析》清华大学第一版社2001年第1版大全适用文档《编译原理》实验纲领一、总则1.本纲领的合用范围1)纲领有关的课程名称及课程属性数据结构,C语言程序设计,专业基础课2)本纲领的合用范围计算机科学技术专业3)实验总课时16学时2.本纲领的实验目的和要求性质:编译程序课程的一定实践环节目的和要求:在弄懂编译原理理论的基础上,经过与课文内容的同步实验,训练学生剖析、设计编译程序的着手能力,进而加深对编译程序课程各个部分学习和理解。3.本实验课程的重点和内容1)从文件中读一行并将字符挨次存入字符指针变量中;2)将一行字符串依据空格将单词分开;3)看单词中能否包含某些保存单词用;4)依据文法描绘语言进行单词分类,并用状态变换图描绘单词的辨别过程;5)依据状态变换图编写词法剖析程序;6)考证赋值语句中算术表达式的语法剖析程序,条件语句或循环语句中的布尔表达式的LR剖析程序;7)设计程序语句的LR剖析程序;8)依据语言的文法写出它的属性翻译文法;9)依据属性翻译文法在语法剖析的基础上增添动作代码;4.本纲领所需的实验设施奔跑PII以上、内存32MB以上、WINDOWS2000、TUBRO-C。二、实验项目及学时安排实验项目一简单的单词辨别程序1)实验种类:考证性与设计性实验2)实验开设属性:必开实验3)学时数:2课时4)实验目的:熟习C操作环境,剖析考证性实验程序的代码结构,认识怎样从文件中逐行读数据到字符串变量中;掌握对符号串进行扫描以辨别单词的编程技巧。5)实验要求:①熟习TUBRO-C系统环境。②能够设计简单的单词辨别器2.实验项目二词法剖析器的设计1)实验种类:考证性与设计性实验2)实验开设属性:必开实验3)学时数:4课时4)实验目的:掌握词法剖析器的简单

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论