《编译原理》第一、二章绪论.ppt

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

第一章 绪 论 编译原理概述 高级程序语言概述 在计算机中使用的三种语言 机器语言(Machine Language):指令的二进制串。(即低级语言) 汇编语言(Assembly Language):使用符号串来表示指令。 高级程序语言(High Level Programming Language):用正规文法定义的语言。 翻译程序与编译程序的区别 翻译程序:把某一种语言程序(源语言程序)改造成另一种语言程序(目标语言程序),而后者跟前者在逻辑上是等价的。 编译程序:如果源语言是FORTRAN,PASCAL等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”,这样的一个翻译程序就称为编译程序。 计算机需要编译程序来将高级语言翻译成机器语言。 编译程序:它把用某一种高 级语言编写的程序翻译成为另一种在逻辑上等价的目标语言,但是并不运行这个程序。 解释程序:在把程序翻译成逻辑上等价的目标语言以后,再一句一句来运行高级语言程序。 编译程序的任务 把一个程序从某一种源语言(即高级程序语言)翻译成为另一种目标语言(汇编语言或者机器语言) 编译程序的开发环境 编译程序的五个过程 词法分析 (Lexical analysis ) 语法分析 (Syntactic analysis ) 中间代码生成 (Intermediate code generation ) 优化 (Optimization) 目标代码生成 (Object code generation ) 编译程序的五个过程 词法分析:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词(符号)。 语法分析:在词法分析的基础上,根据语言的语法规则,把单词符号分解成各类语法单位(语法范畴)。 中间代码产生:对各类不同语法范畴按语言的语义进行初步翻译工作。 编译程序的五个过程 优化:对前阶段产生的中间代码进行加工变幻,以期产生出更高效的目标代码。 优化的主要方面有:公共子表达式的提取,循环优化,算符规约等等。它所依循的原则是等价变换规则。 目标代码产生:把中间代码变换成特定机器上的绝对指令代码或汇编指令代码。 许多编译程序采用“四元式”作为中间代码,它的形式为: 编译程序的结构 1.2 高级程序语言概述 任何程序语言都由两部份构成: 数据对象(Data Objects) 操 作(Manipunations) 1、数据对象 一个数据对象由它的名字和属性两项来表示的。 它的名字是由一个标识符来表示,这个标识符位于内存中的某个地址之上。 它的属性则包括:类型(Types)、作用域(Scope)和生存期(Extent)。 数据类型 基本数据类型 (Elementary data types) 复合数据类型 (Composite data types) 抽象数据类型 (Abstract data types ) 基本数据类型 在Pascal中,有整数型(integer)、实数型(real)、布尔型(boolean)、字符型(character)和指针(pointer)等 在C语言中,有整型(int、short、long)、浮点型(float、double)、字符型(char)、指针型(pointer)等 从上可以看出程序语言中的基础数据类型由三个类型组成: (1)数字、(2)符号串、(3)地址 复合数据类型 用户用复合数据类型来描述复杂的数据对象。一个复合数据类型的成分是由一些基本数据类型或是递归定义的。如: Pascal中有数组(array)、记录(record)、等; C语言中有数组(array)、结构(struct)、联合类型(union)等。 它由有限个成分构成,每个成分都可以通过一个选择器来得到。 抽象数据类型 是一些模块,这些模块将一个数据对象的表示和操作都封装了。 如:C++中的类(Class) Ada中的(package) Modula中的(module) 数据抽象是面向对象程序语言(OOPL)的主要机制之一 2、操作 参数传递的三种不同的途径: 传地址(call by reference):把实在参数的地址传递给相应的形式参数。在过程段中每个形式参数都有一个相应的形式单元,形式单元将用来存放相应的实在参数的地址。 传值(call by value):调用段把实在参数的值计算出来并存放在一个被调用段可以拿得到的地方。在调用段开始工作时,首先把这些值抄进自己的形式单元中,然后就好像使用

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档