版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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+b 4)代码优化:对前段产生的中间代码进行加工变换,以期产生更为高效(省时省空间)的目标代码。 例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)=i(2)=1(3)j100(4)+m(5)+k(6)j(7) 代码一 代码二5)目标代码生成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子厂保密协议细则
- 发电厂安全生产规范
- 2026年黑龙江省伊春市公务员人员招聘考试试题与答案详解
- 2026广西南宁城市建设投资集团有限责任公司第三批招聘考试备考试题及答案解析
- 2026年贵州省铜仁市公务员人员招聘考试备考试题与答案详解
- 2026年深圳市龙岗区事业单位人员招聘笔试备考题库与答案详解
- 2026福建莆田中山中学玉湖校区招聘代课教师1名笔试备考试题及答案解析
- 2026西安市雁塔区第二十四幼儿园保育员招聘考试模拟试题及答案解析
- 2026广东珠海市金湾区高校毕业生基层公共就业创业服务岗位招募20人考试参考题库及答案解析
- 2026年山西省吕梁市公务员人员招聘考试备考题库与答案详解
- 天津大学行政岗招录笔试试题2026
- 北师大版数学六年级上册第六单元 确定位置 基础测试卷
- 广西柳州、桂林、北海等市2027届高三上学期10月联考地理试卷(有答案)
- 2026新教材语文 19《航天员写给孩子的信》课件
- 前列腺癌护理疑难病例讨论
- 2025-2026学年九年级上学期期中考试化学试题(含答案)
- 尿管护理中的持续质量改进
- 2026中国航天科工集团校招面试常见问答
- 电商物流包装操作指南
- 《桥梁工程试验与检测》课件-地基基础承载力检测-1
- 电力安全警示教育 课件
评论
0/150
提交评论