清华大学编译原理PPT课件.ppt

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

编译原理;第0章 预备知识;为什么要学习编译原理?;上程序的运行结果是120。但是,如果把第9行的abs(1)改成1的话,该程序结果是1。;编译原理课程关注的内容;语言之间的翻译 高级语言之间的翻译,一般被称为转换,如FORTRAN到Ada的转换等,或者被称为预处理,如SQL到C/C++的预处理。 高级语言可以直接翻译成机器语言,也可以翻译成汇编语言,这两个翻译过程是将高级语言的源程序翻译成低级语言的目标程序,这种翻译被称为编译。 将一个汇编语言汇编为可在另一机器上运行的机器指令,则称为交叉汇编,而建立在交叉汇编基础之上的编译模式。 把机器语言翻译成汇编语言,或者把汇编语言翻译成高级语言,分别称它们为反汇编和反编译。 上述语言之间的翻译虽然各不相同,但基本方法,特别是对源语言的分析方法是相同的。;通用程序设计语言的主要成份; 类概念的引入,为利用程序设计语言构造类型提供了真正的支持,也是面向对象程序设计语言的重要特征之一。程序设计语言提供的机制与程序设计的风格有着密切关系,以过程为基本抽象的程序设计语言支持的是过程式的程序设计范型(paradigm),以类为基本抽象的程序设计语言支持的是面向对象的程序设计范型,以ADT为基本抽象的程序设计语言介于二者之间,一般被认为是面向过程的语言,但也被认为是基于对象的语言。有些面向对象的程序设计语言是由过程式的语言发展而来的,如C++、Ada95等,它们实质上是支持多范型的程序设计语言。; 本课程以编译器为例,讨论把高级语言中应用最广的通用程序设计语言翻译成汇编语言程序所涉及的基本原理、技术和方法。这些原理、技术和方法也同样适用于其他各类翻译器的构造,同时有些技术和方法也可以被用于其他软件设计。 内容上以最简单的、以过程为基本结构的程序设计语言为背景进行讨论。因为无论何种形式的程序设计语言,均是由声明和操作这样两个基本元素构成的,所不同的是声明和操作的范围和复杂程度不同。 以过程为基本结构的程序设计语言的特征是把整个程序作为一个过程。过程的定义由两类语句组成:声明性语句和操作性语句。一般来讲,声明性语句提供所操作对象的性质,如数据类型、值、作用域等。而操作性语句确定操作的计算次序,完成实际操作。;本门课程的目的和意义 计算机问题求解的基本途径 :对问题进行抽象和形式化表示,然后进行处理。 掌握形式语言与自动机理论。 掌握编译原理及方法。 了解编译程序的实现原理和技术。 培养形式化描述和抽象思维能力。 利用从本课程学到的知识,增强编写和调试程序的能力。;编译原理及技术在其他方面的应用;程序设计语言与程序的翻译 一般的程序设计语言的定义都涉及语法、语义和语用三个方面 。 由符号(单词)构成语法成分的规则称为一般语法规则,由单词构成的句子。 由基本符号构成的符号(单词)书写规则特称为词法规则,由字母构成的单词 。;程序设计语言的语法描述 语法图 BNF范式 :语法成分;::=语法成分的定义;| 表示“或者” 扩充的BNF范式 :增加了三个符号 {x} 表示x可以出现0到多次。 [x] 表示x可能出现,也可能不出现。 (x|y) 表示x和y二者取一。 文法 口语 ;第一章 概述;直观印象:两数之和的程序;1.1什么是编译程序(compiler);什么是编译程序;1.1.1 编译程序的功能 ;1.1.2 翻译程序的种类;编译程序与解释程序的根本区别;1.1.3 编译程序生成的目标程序的形式;1.1.4 什么叫机器语言; 1.1.5 什么是编译系统;N; ;1.1.6 编译理论和编译器的发展史;1.2 编译的基本过程;词法分析;词法分析 position := initial + rate * 60; ;语法分析;;id1:=id2+id3*N 构造语法树;语义分析;又如: int arr [2],abc; abc = arr * 10; … Program p(); Var rate:real; Var initial :real; Var position :real ; … position := initial + rate * 60 ;语义分析;中间代码生成;中间代码生成;代码优化;代码优化;目标代码生成;符号表管理;出错处理 ;1.3编译程序的逻辑结构 (components);出 错 处 理;1.4 决定编译阶段组合的因素 ;1.5 与编译器相关的程序 ;1.6 编译器的翻译步骤 ;一、扫描程序(Scanner) ;二、语法分析程序(Parser) ;assign-expression;三、语义分析程序(Semantic Analyzer) ;四、源代码优化程序(S

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档