版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译原理课程目标掌握高级语言的编译原理和方法第一章
引论
什么是编译程序编译过程概述编译程序的结构编译程序与程序设计环境编译程序的生成§1.1什么叫编译程序计算机是如何实现用户的计算需求?§1.1什么叫编译程序
大多数用户是利用高级语言为工具编程来实现需求的§1.1什么叫编译程序
为什么不能执行源程序test.c?
必须翻译成机器语言程序test.exe
§1.1什么叫编译程序●计算机如何执行高级语言程序?
实现用户的计算需求●高级语言的作用?①首先将高级语言程序翻译为机器语言程序②然后运行机器语言程序求得计算结果●翻译程序高级语言程序→
低级语言程序将一种语言程序转换成逻辑上等价的另一种语言程序●编译程序(C、 C++)
(汇编、机器语言)●解释程序
以源程序作为输入,边解释边执行源程序本身,并不产生目标程序。
源目标●编译程序的分类●编译程序的发展史
Compiler是随着高级语言的发展而发展的。
第一个编译程序是FORTRAN编译程序
Algol60语言是计算机语言的研究成为一门科学的标志。
§1.2编译过程概述
编译程序的工作过程:源程序目标程序*.C
*.exe编译程序TurboC例如例如:
英文句子
中文句子
Hiswordscameoutinqiacksuccession.
(1)词法分析识别出一个个单词,并指出单词错误。quick(2)语法分析:各类语法范畴。
主语:Hiswords
谓语:cameout
状语:inquicksuccession
(3)初步翻译:他的话用快的连续的方式说出来。(4)优化:inquicksuccession
机关枪似的。(5)译文:他说话像机关枪似的。§1.2编译过程概述编译程序的五个阶段:词法分析语法分析语义分析与中间代码产生优化目标代码生成例如:
for(i=1;i<=N;i++)
基本字
for
标识符
i
N
常数
1界符();
运算符
=<=++
●词法分析任务:
输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词(或符号)。
(线性分析)描述词法规则的工具
正则式、有限自动机、正规文法●语法分析
任务:在词法分析的基础上,根据语言的语法规则,把单词串分解成各类语法单位(语法范畴)。描述语法规则的工具:
上下文无关文法例如:
z=x+0.618*y;●语义分析与中间代码产生
任务:对各类语法范畴,分析其含义,并进行初步翻译、产生中间代码。描述语义规则的工具:
属性文法(2)中间代码的翻译
(独立于具体硬件、且含义明确的记号系统)
(1)静态语义检查
(变量是否定义、类型是否正确)举例:
Z:=X+0.618*Y;序号算符左操作数右操作数结果(1)*0.618YT1(2)+XT1T2(3):=T2Z对应的中间代码形式(四元式):●优化
任务:
对前段产生的中间代码进行加工变换,力求在最后阶段能产生出更高效的目标代码。优化的原则:
程序的等价变换规则举例
for(k=1;k<=100;k++)
{m=a+10*k;n=b-10*k;}序号算符左操作数右操作数结果(1):=1K(2)j>k100(9)(3)*10kT1(4)+aT1m(5)*10kT2(6)-bT2n(7)+k1K(8)j(2)(9)……中间代码:序号算符左操作数右操作数结果(1):=am(2):=bn(3):=1K(4)j>k100(9)(5)+m10m(6)-n10n(7)+k1K(8)j(4)(9)……优化后的中间代码:●目标代码生成任务:把中间代码变换成依赖于特定机器上的低级语言代码。目标代码的三种形式:
(1)绝对指令代码(2)汇编指令代码(3)可重定位的指令代码
§1.3编译过程的结构
词法分析器
语法分析器
语义分析与中间代码产生器
优化器
目标代码生成器
出错处理表格管理源程序单词符号语法单位中间代码中间代码目标代码遍(pass)
对源程序或源程序的中间结果从头至尾扫描一次,并做有关的加工处理技术,并生成新的中间结果或目标程序。
编译前端:
与源语言有关,与目标机无关的部分。
(词法分析、语法分析、语义分析与中间代码生成、优化)编译后端:
与源语言无关,与目标机有关的部分。
(优化、目标代码生成)§1.4编译程序与程序设计环境编辑程序(智能提示、词法查错)编译程序连接程序调试工具配置管理程序控制流分析工具§1.5编译程序的生成
机器/汇编语言直接编写在现有编译器基础上用高级语言编写先实现语言的内核编译,再进行自编译扩展先实现某语言的编译,再用该语言实现另一语言的编译,即编译—编译程序利用编译程序产生器输入源语言和目标语言的形式描述而自动产生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新生儿病室建设管理指南
- 美容院财务管理制度(完整版)
- 汽车保养与维修全攻略
- 复星国际首次覆盖报告:瘦身健体轻装再起航
- 2026年初级会计职称考试《初级会计实务》专项练习题及答案(收入确认与计量)
- 《月亮与六便士》读后感集合15篇
- 2026年保密知识答题活动题库及答案
- 2026年高考地理全国甲卷题库(含答案)
- 2026年保密考试简答题卷及答案
- 2026年安徽省宿州市重点学校小升初语文考试真题卷
- 《零件质量检验》课件
- 川教版四年级《生命.生态.安全》下册全册 课件
- 钢板桩支护施工方案完整版
- 超龄员工用工免责协议书
- 土地复耕实施方案ㄟ
- 个人和公司签的业务提成协议书(2篇)
- GB/T 18029.8-2024轮椅车第8部分:静态强度、冲击强度及疲劳强度的要求和测试方法
- 81.GJB 1112A-2004 军用机场场道工程施工及验收规范
- 中外政治思想史-形成性测试三-国开(HB)-参考资料
- 灭火器维修与保养手册
- 电梯日管控、周排查、月调度内容表格
评论
0/150
提交评论