欢迎来到天天文库
浏览记录
ID:39356595
大小:638.81 KB
页数:17页
时间:2019-07-01
《编译程序基本概念》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、编译原理如何让计算机认识、理解和执行高级程序设计语言?2010年9月关于:课程名称:编译原理、编译方法、编译技术。…课程地位:课程特点:操作系统、编译系统和数据库系统计算机中三大系统软件.⒈知识性—形式语言和自动机作为本课程的两大理论基础;二者也具有典型的应用技术;⒉系统性—从词法、句法、语义直到目标生成,构成了语言翻译的完整体系;⒊趣味性—关于语言处理的一些经典算法和实现技术,可以享受获取软件设计方法的乐趣。⒋应用性—编译技术可广泛应用于文本编辑、信息检索、模式识别以及机器翻译等各个领域。第1章 关于编译程序的基本概念
2、内容提要:1.1什么是编译程序?1.2编译程序逻辑结构1.3编译程序实现机制1.4编程过程实例分析Ⅲ.Ⅱ.Ⅰ.※计算机中语言的层次体系:解释程序图1.1计算机中语言的层次体系高级语言1编译程序2反汇编程序汇编程序汇编语言机器语言计算机反编译程序转换程序高级语言2编译程序11.1什么是编译程序?编译程序(compiler)是一种翻译程序,它特指把某种高级程序设计语言翻译成具体计算机上的低级程序设计语言。高级语言的执行过程---源语言编译程序目标语言数据结果运行程序编译阶段运行阶段图1.2高级语言的执行过程两个阶段:※什么是解释
3、程序?解释程序(interpreter)也是一种翻译程序,将某高级语翻译成具体计算机上的低级程序设计语言;解释程序的执行过成如图1.3所示。编译程序与解释程序的主要区别:数据结果解释程序图1.3解释程序的执行过程一条源语句⑴前者有目标程序而后者无目标程序;⑵前者运行效率高而后者便于人机对话。1.2编译程序结构词法分析语法分析语义分析代码生成源语言目标语言错误处理符号表管理图1.4编译程序总体结构框图优化处理编译程序总体结构如图1.4所示。编译程序的五个阶段:单词串TOKEN词法分析源语言语法分析语义分析优化处理代码生成目标语
4、言优化语义树错误处理符号表管理语法树语义树【例1.1】我们用树叶和颜料能够制作美丽的图画。【机器翻译】是指利用计算机把一种自然语言翻译成另一种自然语言。翻译过程Ⅰ.词法分析:r()p()n()c()n()u()v()a()n().Ⅱ.句法分析:汉英辞典与知识库Wecanmakebeautifulpictureswithleavesandpaint.SpSbjPrdruvObjPpVpNpanpNpncnⅢ.语义分析:制作(make)<施事>我们(we)<受事>图画(pictures)<特征>美丽(beautiful)<材料>
5、树叶(leaves)<并列>颜料(paint)<格标>用(with)Ⅳ.优化处理:…Ⅴ.目标生成:※编译程序与机器翻译的类比:语义网语法树1.3编译程序的实现机制根据语言和环境的不同,编译程序实现时是把图1.2中的各阶段划分成若干遍;遍:编译程序对源程序或等价程序从头至尾扫描的次数。两遍的编译程序:第一遍:词法分析、语法分析和语义分析;第二遍:目标代码生成和目标代码优化。每遍中的各阶段的工作是穿插进行的,例如:使语法分析器处于核心位置,而把词法分析器作为子程序;当语法分析需要下一个单词时,就调用词法分析器,识别一个单词。1.
6、4编译过程实例例:Pascal程序片段:⒈词法分析:识别单词并分类vara,b:integer;...b:=a+2*5;编译过程如下:⑴关键字(k)--var,integer;⑵标识符(i)--a,b;⑶常数(c)--2,5;⑷界符(p)--,;::=+单词类码图1.5赋值语句b:=a+2*5的语法树例:b:=a+2*5的分析过程如下所示:(生成的结果是一棵语法树)<变量>:=<表达式><赋值语句>b<项>+<项><变量><因式>*<因式><常数><常数>a25<因式>2.语法分析:组词成句及语法错误检查算术表达式的层次结
7、构ⅠⅡⅢ3.语义分析:分析各种语法成分的语义特征;vara,b:integer;...b:=a+2*5;构建标识符的语义辞典---符号表:构造语句的语义树---中间语言;b的值a的值数据区vibvia地址种类类型名字符号表:=b+a*25如:b:=a+2*5⑴(*25t1)⑵(+at1t2)⑶(:=t2_b)或4. 优化:提高目标程序质量的工作;:=b+a*25⑴(*25t1)⑵(+at1t2)⑶(:=t2_b)经常数合并,可分别获得优化后的中间代码如下图所示:⑴(+a10t2)⑵(:=t2_b)例:b:=a+2*5:=b
8、+a105. 目标代码生成:产生计算机可识别的语言;通常,是把中间语言转换成目标代码,⑴(+a10t2)⑵(:=t2_b)①LDR,a②ADDR,10③STR,bR为寄存器三条指令分别为:取、加和存。如:目标代码:编译程序的理论基础编译程序的构造,是一种语言处理工程,其理论基础和技术基
此文档下载收益归作者所有