郑州大学编译原理第1章

上传人:无*** 文档编号:245076280 上传时间:2024-10-07 格式:PPT 页数:26 大小:377KB
返回 下载 相关 举报
郑州大学编译原理第1章_第1页
第1页 / 共26页
郑州大学编译原理第1章_第2页
第2页 / 共26页
郑州大学编译原理第1章_第3页
第3页 / 共26页
点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text styles,Second Level,Third Level,Fourth Level,Fifth Level,*,*,*,编 译 原 理,赵东,明,iedmzhao,zzu,.,edu,.,cn,课程目标,掌握高级,语言,的,编译原理和方法,第一章,引 论,什么是编译程序,编译过程概述,编译程序的结构,编译程序与程序设计环境,编译程序的生成,1.1 什么叫编译程序,计算机是如何实现用户的计算需求?,1.1 什么叫编译程序,大多数用户是利用,高级语言,为工具编程来实现需求的,1.1 什么叫编译程序,为什么不能执行源程序,test.c?,必须翻译成机器语言程序,test.exe,1.1 什么叫编译程序,计算机如何执行高级语言程序?,实现用户的计算需求,高级语言的作用?,首先将高级语言程序,翻译,为机器语言程序,然后,运行,机器语言程序求得计算结果,翻译程序,高级语言程序,低级语言程序,将一种语言程序转换成逻辑上等价的另一种语言程序,编译程序,(,C、C+,),(,汇编、机器语言),解释程序,以源程序作为输入,边解释边执行源程序本身,并不产生目标程序。,源,目标,编译程序的分类,诊断编译程序,Diagnostic Compiler,(,方便调试),优化编译程序,Optimizing Compiler,(,提高目标代码效率),交叉编译程序,Cross Compiler,(,宿主机与目标机不同),可变目标编译程序,Retargetable,Compiler,(,便于移植),编译程序的发展史,Compiler,是随着高级语言的发展而发展的。,第一个编译程序是,FORTRAN,编译程序,Algol,60,语言,是计算机语言的研究成为一门科学的标志。,1.2 编译过程概述,编译程序的工作过程:,源程序 目标程序,*.C,*.exe,编译程序,Turbo C,例如,例如:,英文句子,中文句子,His words came out in,qiack,succession .,(1) 词法分析,识别出一个个单词,并指出单词错误。,quick,(2) 语法分析:,各类语法范畴。,主语:,His words,谓语:,came out,状语:,in quick succession,(3) 初步翻译:,他的话用快的连续的方式说出来。,(4) 优化:,in quick succession,机关枪似的,。,(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.618,Y,T1,(,2),+,X,T1,T2,(,3),:=,T2,Z,对应的中间代码形式,(四元式):,优化,任务,:,对前段产生的中间代码进行加工变换,力求在最后阶段能产生出更高效的目标代码。,优化的原则,:,程序的等价变换规则,举例,for (k=1; k,k,100,(9),(3),*,10,k,T1,(4),+,a,T1,m,(5),*,10,k,T2,(6),-,b,T2,n,(7),+,k,1,K,(,8),j,(2),(9),中间代码:,序号,算符,左,操作数,右,操作数,结果,(1),:=,a,m,(,2),:=,b,n,(3),:=,1,K,(4),j,k,100,(9),(5),+,m,10,m,(6),-,n,10,n,(7),+,k,1,K,(,8),j,(4),(9),优化后的中间代码:,目标代码生成,任务,:,把中间代码变换成依赖于特定机器上的低级语言代码。,目标代码的三种形式,:,(1) 绝对指令代码,(2) 汇编指令代码,(3) 可重定位的指令代码,1.3 编译过程的结构,词法分析器,语法分析器,语义分析与中间代码产生器,优化器,目标代码生成器,出 错 处 理,表 格 管 理,源程序,单词符号,语法单位,中间代码,中间代码,目标代码,遍(,pass,),对源程序或源程序的中间结果从头至尾扫描一次,并做有关的加工处理技术,并生成新的中间结果或目标程序。,编译前端:,与源语言有关,与目标机无关的部分。,( 词法分析、语法分析、语义分析与,中间代码生成、优化 ),编译后端:,与源语言无关,与目标机有关的部分。,(优化、目标代码生成),1.4 编译程序与程序设计环境,编辑程序(智能提示、词法查错),编译程序,连接程序,调试工具,配置管理程序,控制流分析工具,1.5 编译程序的生成,机器/汇编语言直接编写,在现有编译器基础上用高级语言编写,先实现语言的内核编译,再进行自编译扩展,先实现某语言的编译,再用该语言实现另一语言的编译,即编译编译程序,利用编译程序产生器输入源语言和目标语言的形式描述而,自动产生,编译程序,作业(1),一、术语解释,翻译程序 编译程序 解释程序,遍 编译前端 编译后端,二、简答:,1.,编译程序分为哪几个阶段?各阶段的任务是什么?,2.描述词法规则、语法规则和语义规则的工具是什么?,3.画出编译程序的结构框图。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!