编译原理陈火旺版第一章.ppt

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

编译原理 教师: 蒋 平 电话: E-mail: general515@ * * * 第一章 引论 1.1 编译程序概念 程序语言分为两类: a.高级语言 C,C++,PASCAL,JAVA,BASIC b.低级语言 低级语言可分为两类 a.机器语言:以二进制形式存在,计算机可以 直接执行的语言; b.汇编语言:采用一些助记符号表示机器语言 中的指令和数据,使机器语言 符号化; 编译:将高级程序设计语言翻译加工成机器语言或汇编语言的过程; 编译程序:能够实现编译功能的程序。 1.2 编译过程概述 1)识别出句子中的一个个单词; 2)分析句子的语法结构; 3)根据句子的含义进行初步翻译; 4)对译文进行修饰; 5)写出最后的译文; 例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)中间代码生成:对语法分析所识别出的各类语法单位,分析其含义并进行初步翻译(生成中间代码); 中间代码是一种独立于硬件的记号系统,常用的有四元式、三元式、间接三元式、逆波兰式和树形表示等。 四元式表示方式 结果 右操作数 左操作数 运算符 x T1 = (2) T1 b a + (1) 结果 右操作数 左操作数 运算符 序号 四元式表示例3中的x=a+b 4)代码优化:对前段产生的中间代码进行加工变换,以期产生更为高效(省时省空间)的目标代码。 例4: for(k=1;k=100;k++) {m=i+10*k;} (7) (2) j (6) k 1 k + (5) m T1 i + (4) T1 k 10 * (3) (7) k 100 j (2) k 1 = (1) 结果 右操 作数 左操 作数 运算符 序号 (7) (3) j (6) k 1 k + (5) m 10 m + (4) (7) k 100 j (3) k k 1 = (2) m i = (1) 结果 右操 作数 左操 作数 运算符 序号 代码一 代码二 5)目标代码生成:把中间代码(或优化处理后)变换成特定机器上的低级语言代码。

文档评论(0)

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

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

1亿VIP精品文档

相关文档