编译原理陈火旺版第一章_第1页
编译原理陈火旺版第一章_第2页
编译原理陈火旺版第一章_第3页
编译原理陈火旺版第一章_第4页
编译原理陈火旺版第一章_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、编译原理编译原理教师: 蒋 平电话:-mail: 第一章 引论1.1 编译程序概念 程序语言分为两类: a.高级语言 C,C+,PASCAL,JAVA,BASIC b.低级语言 低级语言可分为两类 a.机器语言:以二进制形式存在,计算机可以 直接执行的语言; b.汇编语言:采用一些助记符号表示机器语言 中的指令和数据,使机器语言 符号化;编译:将高级程序设计语言翻译加工成机器语言或汇编语言的过程;编译程序:能够实现编译功能的程序。1.2 编译过程概述1)识别出句子中的一个个单词; 2)分析句子的语法结构; 3)根据句子的含义进行初步翻译; 4)对译文进行修饰; 5)写

2、出最后的译文;例1 将如下英语翻译成汉语She is a pretty girl.1、词法分析;2、语法分析;3、中间代码生成;4、代码优化; 5、目标代码生成;例2 将如下程序翻译成计算机语言.if (a1) b=2; 词法分析:识别原程序中的一个个单词; 例2中的if,(,a,1,),b,=,2,;,.2)语法分析:把一个个单词按语法规则分解 成语法单位,例如”句子”、“短语”等; 例3: x=a+b 是一个赋值语句 a+b 是一个算数表达式3)中间代码生成:对语法分析所识别出的各类语法单位,分析其含义并进行初步翻译(生成中间代码); 中间代码是一种独立于硬件的记号系统,常用的有四元式、三

3、元式、间接三元式、逆波兰式和树形表示等。四元式表示方式运算符左操作数右操作数结果序号运算符左操作数 右操作数结果(1)+abT1(2)=T1x四元式表示例3中的x=a+b4)代码优化:对前段产生的中间代码进行加工变换,以期产生更为高效(省时省空间)的目标代码。 例4: for(k=1;k=100;k+) m=i+10*k;序号序号运算运算符符左操左操作数作数右操右操作数作数结果结果(1)=1k(2)j100k(7)(3)*10kT1(4)+iT1m(5)+k1k(6)j(2)(7)序号序号运算运算符符左操左操作数作数右操右操作数作数结果结果(1)=im(2)=1kk(3)j100k(7)(4)+m10m(5)+k1k(6)j(3)(7)代码一代码二5)目标代码生成:把中间代码(或优化处理后)变换成特定机器上的低级语言代码。1.3 编译程序的结构 编译程序总框人有了知识,就会具备各种分析能力,明辨是非的能力。所以我们要勤恳读书,广泛阅读,古人说“书中自有黄金屋。”通过阅读科技书籍,我们能丰富知识,培养逻辑思维能力;通过阅读文学作品,我们能提高文学鉴赏水平,培养文学情趣;通过

温馨提示

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

评论

0/150

提交评论