编译 第一章编译技术原理.ppt
《编译 第一章编译技术原理.ppt》由会员分享,可在线阅读,更多相关《编译 第一章编译技术原理.ppt(27页珍藏版)》请在三一办公上搜索。
1、编译技术原理,课 程 要 求,熟练掌握c、pascal语言的编程、语法结构;会一种程序设计语言的编程;会一种数据库开发语言,或熟悉文件的管理;按课程的进程,按时完成课程设计按时完成作业认真听讲,认真作笔记,上课不得迟到早退上课不得喧哗,第一章引 论,一、什么是编译程序 使用过现代计算机的人都知道,现代的编程软件,越来越趋向于智能化、自然语言化,越来越高级,但是,通过前期课程的学习,大家都知道,计算机是不能识别自然语言或高级语言,只能识别机器语言,那么我们的高级语言程序是如何在计算机上执行的呢?在计算机上执行一个高级语言程序一般要分两步:第一步:用一个翻译程序把高级语言翻译成机器语言程序;第二步
2、:运行所得的机器语言程序求得计算结果。第二步我们暂时不考虑,那么第一步“翻译程序”是我们这门课讨论的重点,什么样的程序叫翻译程序?翻译程序是如何翻译的?世界上第一个编译程序FORTRAN编译程序是20世纪50年代中期研制成功的。,第一章引 论,一、什么是编译程序定义:假设,SL指源语言程序,TL指目标语言程序,则:翻译程序把SL变换为TL的程序,SL与TL逻辑上等价。编译程序SL为高级语言、TL为低级语言的翻译程序。汇编程序SL为汇编语言程序,TL为机器语言程序。解释程序逐条翻译,且立即执行,不生成目标程序。分类:根据侧重和用途,编译程序进一步划分:1.诊断编译程序:专门用于帮助程序的开发和调
3、试的编译程序.2.优化编译程序:着重于提高目标代码效率的编译程序.3.交叉编译程序:运行编译程序的计算机称宿主机,运行编译程序所产生目标代码的计算机称目标机,如果一个编译程序产生不同于其宿主机的机器代码。4.可变目标编译程序:如果不需重写编译程序中与机器无关的部分就能改变目标机的编译程序。,第一章引 论,二、编译过程概述编译程序的过程,从输入源程序到输出目标程序为止的整个过程,非常复杂,但是从形式和操作步骤上来说,与自然语言的翻译很相近。例如:把引文翻译成中文的步骤:1.识别出句子中的一个个单词;2.分析句子的语法结构;3.根据句子的含义进行初步翻译;4.对译文进行修饰;5.写出最后的译文 按
4、照编译程序的执行过程和它所完成的任务,可把编译过程分为五个阶段:词法分析、语法分析、语义分析与中间代码生成、优化、目标代码生成。又把五阶段分为两大部分:分析和综合。分析部分包括:词法分析、语法分析、语义分析。综合部分包括:中间代码生成、代码优化、目标代码生成。,词法分析任务:输入源程序,对构成源程序的字符串进行扫描和分解,过滤编辑符号,按词法规则分解为单词序列。单词分类:基本字(if、else、for、while等)、标识符、常数、算符、界符(标点和括号)。例如赋值语句:position:=initial+rate*60;词法分析的结果是识别出下列单词符号:标识符position 赋值号:标识
5、符initial加号标识符rate 乘号*整常数60 分号;,词法分析在词法分析阶段的工作中,所依循的是语言的词法规则(或称构词规则).描述词法规则的有效工具是:正规式和有限自动机。编译器的词法分析也叫线性分析或扫描练习题:pascal语言的循环语句:for I:=1 to 100 do 基本字 for 标识符 I 赋值号:=整常数 1 基本字 to 整常数 100 基本字 do,2、语法分析(简称为分析),任务:在词法分析的基础上,根据语法规则,把单词序列分解为各种语法单位。语法单位:程序、程序段、语句、短语、表达式。词法分析把记号流按语言的语法结构层次地分组,例如:对赋值语句:positi
6、on:=initial+rate*60;进行语法分析可得到如下所示的层次结构,称为语法分析树,简称语法树(或分析树)。,分析树的层次结构可以用递归规则表示。例如:下列规则定义包含、*运算的表达式:1.任意一个标识符是一个表达式;2.任意一个数是表达式;3.如果e1和e2都是表达式,则 e1+e2e1*e2(e1)都是表达式。例:对赋值语句:position:=initial+rate*60 由规则1得:initial 和rate 都是表达式 由规则2得:60是一个表达式 由规则3得:rate*60是一个表达式;initial+rate*60是一个表达式。类似的,可以用下列规则递归的定义语句:1
7、、如果ID1是一个标识符,e2是一个表达式,则ID1:e2是一个语句。2、如果e1是一个表达式,st2是一个语句,则 While(e1)st2 和 if(e1)st2 都是语句。,3、语义分析,任务:对源程序进行语义检查和类型检查。语义分析使用语法分析确定的层次结构表示表达式和语句。类型检查是语义分析的一个重要部分,按照语言的类型规则检查和每个运算符相关的操作数。例:1、当数组下标为实数时,许多语言要求编译程序报告错误;2、一般允许二元运算符的操作数既可为整数,也可为实数,运算时要进行类型转换。,在以上分析的各阶段里,编译程序都把源程序变换成便于下一阶段处理的内部表示形式。对上述语句经每一阶段
8、分析后产生的内部表示形式如下图所示,其中的id1、id2和id3分别表示词法分析器对标识符position、initial和rate产生的记号。,position:=initial+rate*60,4、中间代码的生成,任务:对源程序进行初步翻译的工作,生成中间代码。中间代码的特点:结构简单、语义明确、易于转换、易于优化。中间代码的形式:前缀式、三地址代码、四元式等。三地址代码由指令序列组成,每条指令最多有三个操作数。四元式的形式是:(算符,左操作数,右操作数,结果)例如:由语义分析得到的分析树可得到表达式position:=initial+rate*60的三地址代码表示形式为:temp1:=i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 第一章 编译技术原理 技术 原理
链接地址:https://www.31ppt.com/p-2936747.html