欢迎来到天天文库
浏览记录
ID:50207972
大小:1.17 MB
页数:35页
时间:2020-03-10
《编译方法 教学课件 作者 贺汛_ 第1章 概述.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、编译方法1.3编译技术的应用1.2编译程序1.1程序设计语言与程序第1章编译概述1.1程序设计语言与程序1.1.2程序设计语言的分类1.1.3程序及其结构1.1.4高级语言程序的处理过程1.1.1程序设计语言的定义1.1程序设计语言与程序程序设计语言语义语用语法1.1.1程序设计语言的定义1.1程序设计语言与程序1.1.2程序设计语言的分类机器语言汇编语言高级语言特定应用语言逻辑约束语言1.1程序设计语言与程序1.1.3程序及其结构voidQ(){Q的局部数据定义……R();……Q();……}main(){Main的局部数据定义……}vo
2、idR(){R的局部数据定义……}1.1程序设计语言与程序1.C语言一个主函数main、若干(可以为0)个子函数。1.1.3程序及其结构1.1程序设计语言与程序2.Pascal语言嵌套过程语言特点:程序的过程定义是嵌套的,内层过层由外层过程调用,内层过程执行完毕将返回外层过程。允许内层过程引用包围它的任一外层过程说明的变量。1.1.3程序及其结构programA;A的数据说明procedureB(参数表);B的数据说明procedureC(参数表);C的数据说明begin……end;begin……C;……end;procedureD;D的
3、数据说明begin……B;……end;begin……B;……D;……end.1.1程序设计语言与程序绝对机器代码程序可再装配的机器代码程序目标汇编程序源程序需预处理的源程序1.1.4高级语言程序的处理过程预处理编译汇编装配/连接1.1程序设计语言与程序1.2编译程序1.2.2编译过程和编译程序的结构1.2.3编译程序的生成1.2.4编译程序与程序设计环境1.2.1编译与解释1.2编译程序编译程序源程序目标程序错误信息高级语言程序的翻译方式:解释、编译编译:将高级语言程序翻译成另一种语言的等价程序。源程序、目标程序和编译程序的关系:1.2.
4、1编译与解释1.2编译程序解释:翻译一句执行一句,边翻译边执行,直到程序结束。与编译的区别:不生成等价的目标代码程序。优点:解释方式便于程序的调试。(编译方式只需翻译一次,且目标程序的执行速度快)1.2.1编译与解释1.2编译程序词法分析语义分析和中间代码生成目标代码生成目标程序代码优化语法分析源程序出错处理表格管理1.2.2编译过程和编译程序的结构1.2编译程序1.编译过程主要任务:从左到右扫描源程序,逐一读入构成源程序的字符流,识别出其中的一个个单词,识别出的单词称单词符号,也简称符号。单词是高级语言程序中有实际意义的最小语法单位。单
5、词构成规则——词法规则或构词法(单词识别的依据)单词内码形式——二元式(指出了单词的类别和自身值)1.2.2编译过程和编译程序的结构(1)词法分析1.2编译程序(1)(标识符,z)(2)(等号,=)(3)(标识符,x)(4)(加号,+)(5)(标识符,a)(6)(取余号,%)(7)(整数,3)(8)(乘号,*)(9)(左括号,()(10)(保留字,int)(11)(右括号,))(12)(左括号,()(13)(标识符,x)(14)(加号,+)(15)(标识符,y)(16)(右括号,))(17)(取余号,%)(18)(整数,2)(19)(除号
6、,/)(20)(整数7)(21)(分号;)例:z=x+a%3*(int)(x+y)%2/7;1.2.2编译过程和编译程序的结构1.2编译程序任务“组词成句”,根据单词分析出组成源程序的各类语法单位,并指出其中的语法错误。语法单位——由源程序的单词构成(如表达式、语句、……乃至整个程序。)语法单位的构成规则——语法规则。一个语言的词法规则和语法规则定义了一个程序的形式结构。语法单位的表示——语法树(2)语法分析1.2.2编译过程和编译程序的结构1.2编译程序<赋值语句><整数>=xz<变量><表达式>y%*+3a<表达式><表达式><表达式
7、><表达式><表达式><表达式><变量><变量><变量>例:z=x+a%3*y1.2.2编译过程和编译程序的结构1.2编译程序任务:分析出语法单位具体的动作意义,进行初步翻译,生成与源程序等价的中间代码程序。语义:定义一个程序所表示的意义,用语义规则描述。中间代码:指令应结构简单、含义明确,易于实现源程序——中间代码——目标代码三者之间的转换。中间代码常用形式:逆波兰式、三元式、四元式等。四元式:(运算符,对象1,对象2,结果)例:z=x+a%3*y(1)(%a3t1)(2)(*t1yt2)(3)(+xt2t3)(4)(=t3_z)(3)
8、语义分析和中间代码生成1.2.2编译过程和编译程序的结构1.2编译程序任务:对中间代码进行等价的加工变换,以便生成更有效更节省时间和空间的目标代码。例:z=x+a%3*y的四元式序列:(1)(
此文档下载收益归作者所有