编译原理教案.docx

编译原理教案.docx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共89页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

课程编码编译原理及实现技术课程教案

2023~2023学年第1学期

任课教师:郭德贵、张红、张睿

吉林大学计算机科学与技术学院

课程名称:编译原理

课程英文名称:CompilerPrinciple学时:64

学分:4

授课对象:计算机科学与技术专业2023级教学目的:

编译原理课程是计算机科学与技术专业学生的专业骨干课之一。通过学习这门课程,使学生把握编译程序的根本原理、方法和实现技术,使学生更好的理解程序语言的内部机制,培育学生初步把握设计大型系统软件的方法、技术以及设计大型软件的力量。

教学方式:板书 多媒体系统演示教材:

刘磊《编译原理及实现技术》机械工业出版社2023

教学参考书:

陈火旺等《程序设计语言编译原理》国防工业出版社2023

吕映芝,张素琴,蒋维杜《编译原理》清华大学出版社1998

AlfredV.Aho,Ravi,Sethi,JeffreyD.Ullman.Compilers:Principles,Techniques,andTool.AddisonWesley,1985.

CharlesN.Fischer,RichardJ.LeBlanc.CraftingaCompilerwithC.PearsonEducation,1991

授课题目

授课学时 2

第一章编译引论

授课时间

教学重点、难点:

本章从总体上概要介绍编译相关的原理和技术以及典型编译器的规律构造,使学生对编译程序有一个初步的生疏。本章重点和难点为各根本概念的理解和对整个编译程序各个阶段所担当任务的理解和把握。

教学要点: 本章需要学生把握如下内容:

实现高级语言的编译方式和解释方式及其区分。

编译方式:对整个源程序进展分析,翻译成等价的目标程序,翻译的同时做语法检查和语义检查。然后再运行目标程序。

解释方式:一个语句一个语句的读入源程序,边翻译边执行,在翻译过程中不产生目标程序。

解释方式特别适合于交互式语言;而且解释方式允许程序执行时转变自身,比方调试程序。这种情形编译程序不易胜任,由于它需要动态编译,而解释程序可以毫无困难的胜任;此外,解释程序不依靠于目标机,由于它不生成目标代码,可移植性优于编译程序。但是和编译程序相比,解释程序开销大,运行速度慢得多。解释方式和编译方式的最根本区分在于:在解释方式下,并不生成目标代码程序,而是直接执行源程序本身。

典型编译器的各个组成局部以及各个局部所担当的任务。

词法分析阶段

词法分析的任务是扫描源程序的ASCII码序列,识别出一个个具有独立意义的最小语法单位,即单词.

语法分析阶段

语法分析的任务是依据程序设计语言的语法规章,把词法分析的结果分解成各种语法单位,同时检查程序中的语法错误。

语义分析阶段

这一阶段的任务是对语法分析所识别出的各类语法范畴,分析其含义,并进展静态语义检查。

中间代码生成

在进展了上述的语法分析和语义分析阶段的工作后,编译程序将源程序变成一种内部表示形式.

中间代码优化

此阶段的任务是对前阶段产生的中间代码在不转变源程序语义的前提下进展加工变换,使生成的代码更为高效,缩短运行时间或节约存储空间。

目标代码生成

这一阶段的任务是把中间代码变换成特定机器上的机器指令代码或汇编指令代码。

表格治理

编译程序在对源程序的分析过程中,需要创立和治理一系列的表格,以登记源程序的各类信息和编译各阶段的进展状况。

遍具体实现上,受不同源语言、设计要求和计算机硬件条件的限制,往往将编译程序组织成假设干遍

〔Pass〕。所谓“遍”就是对源程序或源程序的中间表示形式从头到尾扫描一次,并作加工处理,生成的中间结果或目标程序。既可以将编译过程中的几个不同阶段合为一遍,也可以把一个阶段的工作分为假设干遍。例如,词法分析这一阶段可以作为单独的一遍,但更多的时候是把词法分析程序作为语法分析程序的子程序来加以调用,将词法分析阶段和语法分析阶段合并为一遍。

前端和后端概念上,我们有时把编译程序划分为编译前端和编译后端。前端主要由与源语言有关但与目标机无关的那些局部组成。编译前端通常包括词法分析、语法分析、语义分析、中间代码生成,与目标机无关的中间代码优化局部也可包含在前端,固然前端也包括相应局部的错误处理。

编译后端包括与目标机有关的中间代码优化局部和目标代码生成等。一般来说,这些局部与源语言无关而仅仅依靠于中间语言。很明显编译后端是面对目标语言的,而编译前端则不是,它几乎独立于目标语言。

编译程序的实现

一般开发编译程序有如下几种可能途径:

转换法〔预处理法〕:

假设我们要实现L语言的编译器,现在有L’语言的编译器,那么可以把L语言程序转换成L’语言的程序,再利用

文档评论(0)

176****1855 + 关注
实名认证
内容提供者

注册安全工程师持证人

铁路、地铁、高速公路、房建及风电等相关领域安全管理资料

领域认证该用户于2023年05月18日上传了注册安全工程师

1亿VIP精品文档

相关文档