编译原理教案27050

编译原理教案27050

ID:17413977

大小:2.88 MB

页数:89页

时间:2018-08-31

编译原理教案27050_第1页
编译原理教案27050_第2页
编译原理教案27050_第3页
编译原理教案27050_第4页
编译原理教案27050_第5页
资源描述:

《编译原理教案27050》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、课程编码:07153008编译原理及实现技术课程教案2011~2012学年第1学期任课教师:郭德贵、张红、张睿吉林大学计算机科学与技术学院课程名称:编译原理课程英文名称:CompilerPrinciple学时:64学分:4授课对象:计算机科学与技术专业2009级教学目的:编译原理课程是计算机科学与技术专业学生的专业骨干课之一。通过学习这门课程,使学生掌握编译程序的基本原理、方法和实现技术,使学生更好的理解程序语言的内部机制,培养学生初步掌握设计大型系统软件的方法、技术以及设计大型软件的能力。教学方式:板书多媒体系统演示教材:刘磊《编译原理及实现技

2、术》机械工业出版社2005教学参考书:1)陈火旺等《程序设计语言编译原理》国防工业出版社20012)吕映芝,张素琴,蒋维杜《编译原理》清华大学出版社19983)AlfredV.Aho,Ravi,Sethi,JeffreyD.Ullman.Compilers:Principles,Techniques,andTool.AddisonWesley,1985.4)CharlesN.Fischer,RichardJ.LeBlanc.CraftingaCompilerwithC.PearsonEducation,1991授课题目第一章编译引论授课学时2授课

3、时间教学重点、难点:本章从总体上概要介绍编译相关的原理和技术以及典型编译器的逻辑结构,使学生对编译程序有一个初步的认识。本章重点和难点为各基本概念的理解和对整个编译程序各个阶段所承担任务的理解和掌握。教学要点:本章需要学生掌握如下内容:1.实现高级语言的编译方式和解释方式及其区别。编译方式:对整个源程序进行分析,翻译成等价的目标程序,翻译的同时做语法检查和语义检查。然后再运行目标程序。解释方式:一个语句一个语句的读入源程序,边翻译边执行,在翻译过程中不产生目标程序。解释方式特别适合于交互式语言;而且解释方式允许程序执行时改变自身,比如调试程序。这

4、种情形编译程序不易胜任,因为它需要动态编译,而解释程序可以毫无困难的胜任;此外,解释程序不依赖于目标机,因为它不生成目标代码,可移植性优于编译程序。但是和编译程序相比,解释程序开销大,运行速度慢得多。解释方式和编译方式的最根本区别在于:在解释方式下,并不生成目标代码程序,而是直接执行源程序本身。2.典型编译器的各个组成部分以及各个部分所承担的任务。a.词法分析阶段词法分析的任务是扫描源程序的ASCII码序列,识别出一个个具有独立意义的最小语法单位,即单词.b.语法分析阶段语法分析的任务是根据程序设计语言的语法规则,把词法分析的结果分解成各种语法单

5、位,同时检查程序中的语法错误。c.语义分析阶段这一阶段的任务是对语法分析所识别出的各类语法范畴,分析其含义,并进行静态语义检查。d.中间代码生成在进行了上述的语法分析和语义分析阶段的工作后,编译程序将源程序变成一种内部表示形式.e.中间代码优化此阶段的任务是对前阶段产生的中间代码在不改变源程序语义的前提下进行加工变换,使生成的代码更为高效,缩短运行时间或节省存储空间。f.目标代码生成这一阶段的任务是把中间代码变换成特定机器上的机器指令代码或汇编指令代码。g.表格管理编译程序在对源程序的分析过程中,需要创建和管理一系列的表格,以登记源程序的各类信息

6、和编译各阶段的进展情况。1.遍具体实现上,受不同源语言、设计要求和计算机硬件条件的限制,往往将编译程序组织成若干遍(Pass)。所谓“遍”就是对源程序或源程序的中间表示形式从头到尾扫描一次,并作加工处理,生成新的中间结果或目标程序。既可以将编译过程中的几个不同阶段合为一遍,也可以把一个阶段的工作分为若干遍。例如,词法分析这一阶段可以作为单独的一遍,但更多的时候是把词法分析程序作为语法分析程序的子程序来加以调用,将词法分析阶段和语法分析阶段合并为一遍。2.前端和后端概念上,我们有时把编译程序划分为编译前端和编译后端。前端主要由与源语言有关但与目标机

7、无关的那些部分组成。编译前端通常包括词法分析、语法分析、语义分析、中间代码生成,与目标机无关的中间代码优化部分也可包含在前端,当然前端也包括相应部分的错误处理。编译后端包括与目标机有关的中间代码优化部分和目标代码生成等。一般来说,这些部分与源语言无关而仅仅依赖于中间语言。很明显编译后端是面向目标语言的,而编译前端则不是,它几乎独立于目标语言。3.编译程序的实现一般开发编译程序有如下几种可能途径:a.转换法(预处理法):假如我们要实现L语言的编译器,现在有L’语言的编译器,那么可以把L语言程序转换成L’语言的程序,再利用L’语言的编译器实现L语言,

8、这种方法通常用于语言的扩充。如对于C++语言,可以把C++程序转换成C程序,再应用C语言的编译器进行编译,而不用重新设计和实现C++编译

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。