首页 第一章 编译原理概述

第一章 编译原理概述

举报
开通vip

第一章 编译原理概述编译原理周开来zkl2@163.com西南林业大学计算机与信息科学系„„教材和参考书教材和参考书…陈火旺,刘春林,谭庆平等编著,《程序设计语言编译原理》,国防工业出版社出版,2001.1…高仲仪、金茂忠,《编译原理及编译程序构造》,北航出版社。…AlfredV.Aho,RaviSethi,JeffreyD.Ullman,Compilers—Principles,Techniques,andTools.机械出版社(翻译版),2003…吕映芝,张素琴等,《编译原理》,清华大学出版社,1998,1。版权所有…Kennet...

第一章 编译原理概述
编译原理周开来zkl2@163.com西南林业大学计算机与信息科学系„„教材和参考书教材和参考书…陈火旺,刘春林,谭庆平等编著,《程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 语言编译原理》,国防工业出版社出版,2001.1…高仲仪、金茂忠,《编译原理及编译程序构造》,北航出版社。…AlfredV.Aho,RaviSethi,JeffreyD.Ullman,Compilers—Principles,Techniques,andTools.机械出版社(翻译版),2003…吕映芝,张素琴等,《编译原理》,清华大学出版社,1998,1。版权所有…KennethC.Louden著,《编译原理及实践》,机械工业出版社,2000,3。…李赣生,王华民,《编译程序原理与技术》,清华大学出版社,1997,10。关于学习编译原理„先导课程…计算机组成原理…数据结构…离散数学…高级程序设计语言…汇编程序语言„构造编译程序的前提:…掌握源语言…掌握目标语言…掌握编译 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 关于学习编译原理„现实意义:…计算机专业核心课程…考研必考科目…考资格认证必考 知识点 高中化学知识点免费下载体育概论知识点下载名人传知识点免费下载线性代数知识点汇总下载高中化学知识点免费下载 (软件工程师)„理论意义:…学习编译程序构造原理,技术…更好地理解高级语言…编译的原理和方法有助于构造一些实用的工具关于学习编译原理„课程特点:…综合性比较大…难度比较大„要求:…理解性…技术性关于纪律„不要作为选修课看待…为什么???????„既来之,则听之…不许捣乱„不要随便缺席…缺席三次以上,肯定会坐飞机,不知所云第一章编译原理概述„本课程介绍程序设计语言编译程序构造的基本原理和基本实现技术.第一章编译原理概述„编译理论与方法…计算机科学与技术中理论和实践相结合的最好典范…ACM图灵奖,授予在计算机技术领域作出突出贡献的科学家„程序设计语言、编译理论与方法约占1/3程序设计语言的发展机器语言汇编语言面向用户面向问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 (机器指令)的语言的语言C70600000002MOVx,2x=2低级语言高级语言„低级语言(LowlevelLanguage)…字位码、机器语言、汇编语言…特点:与特定的机器有关,功效高,但使用复杂、繁琐、费时、易出错„高级语言--Fortran、Pascal、C语言等…特点:不依赖具体机器,移植性好、对用户要求低、易使用、易维护等。用高级语言编制的程序,计算机不能立即执行,必须通过一个“翻译程序”加工,转化为与其等价的机器语言程序,机器才能执行。这种翻译程序,称之为“编译程序”。一.什么是编译程序‰翻译程序把某一种语言程序(称为源语言程序)等价地转换成另一种语言程序(称为目标语言程序)的程序源语言翻译目标语程序言程序翻译程序一.什么是编译程序‰编译程序(compiler)把某一种高级语言程序等价地转换成另一种低级语言程序(如汇编语言或机器语言程序)的程序诊断编译程序优化编译程序交叉编译程序可变目标编译程序高级语翻译机器语运行结果言程序言程序编译程序一.什么是编译程序‰解释程序把源语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身解释执行源程序结果解释程序编译程序vs.解释程序编译解释二.编译过程„把英文翻译为中文词法分析…识别出句子中的一个个单词;语法分析…分析句子的语法结构;…根据句子的含义进行初步翻译;中间代码产生…对译文进行修饰;…写出最后的译文。优化目标代码产生编译过程概述编译程序的工作,从输入源程序开始,到输出目标程序结束,与自然语言之间的翻译有很多相似之处。构成编译程序各个一段英文翻译成中文,编译程序阶段需经下列步骤:Iamaexperiencedteacher.识别出句子中的单词词法分析分析句子的语法结构语法分析根据句子的含义进行初步分析语义分析及中间代码生成对译文进行修饰代码优化写出最后的译文目标代码生成二.编译过程„编译程序的工作一般分为五个阶段:…词法分析…语法分析…语义气分析及中间代码产生…优化…目标代码产生1.词法分析„任务:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词符号。„依循的原则:构词 规则 编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf „描述工具:有限自动机,正规式„FORI:=1TO100DO保留字标识符等符整常数保留字整常数保留字1、词法分析任务:分析和识别单词。源程序是由字符序列构成的,词法分析扫描源程序(字符串),根据语言的词法规则分析并识别单词,并以某种编码形式输出。•单词:是语言的基本语法单位,一般语言有四大类单词<1>语言定义的关键字或保留字(如BEGIN、END、IF)<2>标识符<3>常数对于如下的字符串<4>分界符(运算符),词法分析程序将分析和识别出(如+、-、*、/、;、(、)9个单词:……)X1:=(2.0+0.8)*C11234567892.语法分析„任务:在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位。„依循的原则:语法规则„描述工具:上下文无关文法„Z:=X+0.618*Y算术表达式,赋值语句2、语法分析任务:根据语法规则(即语言的文法),分析并识别出各种语法成分,如表达式、各种说明、各种语句、过程、函数等,并进行语法正确性检查。X1:=(2.0+0.8)*C1赋值语句的文法:<赋值语句>→<变量><赋值操作符><表达式><变量>→<简单标识符><赋值操作符>→:=<表达式>→……3.中间代码产生„任务:对各类不同语法范畴按语言的语义进行初步翻译。„依循的原则:语义规则„中间代码:三元式,四元式,树形结构等„Z:=X+0.618*Y翻译成四元式为(1)*0.618YT1(2)+XT1T2(3):=T2_Z四元式(三地址指令)X1:=(2.0+0.8)*C1运算符左运算对象右运算对象结果(1)+2.00.8T1(2)*T1C1T2(3):=X1T2其中T1和T2为编译程序引入的工作单元四元式的语义为:2.0+0.8→T1T1*C1→T2T2→X1这样所生成的四元式与原来的赋值语句在语言的形式上不同,但语义上等价。4.优化„任务:对于前阶段产生的中间代码进行加工变换,以期在最后阶段产生更高效的目标代码。„依循的原则:程序的等价变换规则FORK:=1TO100DOBEGINX:=I+1;M:=I+10*K;N:=J+10*K;END400400次加法次加法中间代码(一)200200次乘法次乘法序号OPROPN1OPN2RESULT注释(1):=1KK:=1(2)j<100K(10)if(100„main()„{„inta=2,b;„printf("a=%d,b=%d\n",a,b);„inta=5;„intarr[6];„for(inti=0;i<6;i++)„{„arr[i]=i*i;„for(intj=0;j<=6;j++)„printf("a[%d]=%d\t,j,arr[j]);„doubleArea;„floatr;„printf("\nr=");„scanf("%f",&r);„Area=3.14159*r*r;„printf("Area=%d",Area);„}3表格管理inta,b;floate,fcharch1,ch2;为什么要先说明?定义了变量的类型,也就规定了变量在内存中的存放形式,在其上所能进行的运算解决符号地址到存贮地址上的映射编译器的一个基本功能是记录源程序中使用的标识符并收集与每个标识符相关的各种属性信息,并将它们记载到符号表中。符号表是一个数据结构。每个标识符在符号表中都例:inta,b;有一条记录名字记号类型种属……addraid1(25)int简变0bid2(25)int简变43.表格管理„常见的表格:„符号名表,常数表,标号表,入口名表,过程引用表等。4.遍(pass)„所谓“遍”,就是对源程序或源程序的中间表示从头到尾扫描一次并完成相应工作的全过程。„阶段与遍是不同的概念。一遍可以由若干段组成,一个阶段也可以分若干遍来完成。一遍扫描即可完成整个编译工作的称为一遍扫描编译程序其结构为:语法成分语义分析生成S.P.语法分析目标程序返回分析结果取单词返回单词词法分析整理目标程序O.P.停机5.编译前端与后端前端后端源语言中间语言目标语言„编译前端:与源语言有关,如词法分析,语法分析,语义分析与中间代码产生,与机器无关的优化„编译后端:与目标机有关,与目标机有关的优化,目标代码产生前端和后端根据编译程序各部分功能,将编译程序分成前端和后端。前端:词法分析、语法分析、语义分析、中间代码生成、代码优化-------分析部分特点:与源语言有关后端:目标程序生成(与目标机有关的优化)-------综合部分特点:与目标机有关优点:减少对内存容量的要求,程序逻辑结构清晰;优化更充分,有利于移植。不足:编译程序运行的效率低JAVA语言Java源程序(.java)Java编译器Java虚拟机代码(.class)Java虚拟机(解释器)解释执行操作系统平台6.编译程序的前后处理器源程序:多文件、宏定义和宏调用,包含文件目标程序:一般为汇编程序或可重定位的机器代码框架源程序可重定位机器码(文件组)预处理器库目标、可重源程序连接编辑定位目标文件编译程序可重定位机器码目标程序(汇编)加载器汇编程序可运行的机器代码可重定位机器码(Obj文件)四.编译程序与程序设计环境„程序设计环境…编辑程序…编译程序…连接程序…调试工具„集成化的程序设计环境集成化的程序设计环境„Dev-C++是一个C&C++开发工具„开发环境包括多页面窗口、工程编辑器以及调试器等,在工程编辑器中集合了编辑器、编译器、连接程序和执行程序,提供高亮度语法显示的,以减少编辑错误,还有完善的调试功能,能够适合初学者与编程高手的不同需求,是学习C或C++的首选开发工具!.NETFramework与VS.NETVBC++C#JScript…CommonLanguageSpecificationVisualStudio.NETASP.NET:WebWindowsServices&WebFormsFormsADO.NET:DataandXMLCommonLanguageRuntimeOperatingSystem五.编译程序生成„以汇编语言和机器语言为工具…优点:可以针对具体的机器,充分发挥计算机的系统功能。生成的程序效率高。…缺点:程序难读、难写、易出错、难维护、生产的效率低。五.编译程序生成„高级语言书写STIS源程序T目标程序I实现语言¾优点:程序易读、易理解、容易维护、生产的效率高。¾缺点:难以充分发挥计算机的系统功能,生成的程序效率低。五.编译程序生成„高级语言书写利用已有的某种语言的编译程序实现另一语言的编译程序。五.编译程序生成交叉编译:„在计算机系统A上编译能够在与系统A不同的计算机系统B上运行的程序,反之亦然.„把一种机器上的编译程序移植到另一种机器上。五.编译程序生成„自展技术…先用机器语言或者汇编语言写一个内核,然后像滚雪球一样不断扩展L1+L2+...+Ln…L1+L2L1五.编译程序生成„编译程序自动产生编译程序-编译程序,编译程序书写系统L语言的语法描述语义描述编译程序L语言的目标语言自动产生器编译程序或机器描述LEX词法分析程序产生器YACC语法分析程序产生器本章习题填空题:„程序设计语言的翻译主要有两种方式___和___,二者的根本区别在于___.„对于编译程序而言,输入数据是___,输出数据是___.„编译程序是指能将___程序翻译成___程序的程序.„要为某种语言构造一个编译程序,必须确认以下三方面的内容:___,___,___.„编译程序的工作过程一般可包括___,___,___,___,___,___等几个阶段,同时还伴有___和___。„一个程序是正确的,包括两层含义:___和___。„LEX是用于___的工具,YACC是用于___的工具。答案:„编译方式,解释方式,是否生成目标代码„源程序,目标程序„源语言,目标语言„源语言,目标语言,编译方法„词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成,表格管理,出错处理„语法正确,语义正确„词法分析,语法分析简答题:(1)什么是自展?什么是交叉编译?(北京航空航天大学研究生入学考试试题)答:„自展是先对语言的核心部分构造一个小的编译程序,再以它为工具构造一个能够编译更多语言成分的较大的编译程序。如此扩展下去,直至最后形成人们所期望的整个编译程序。„交叉编译是在计算机系统A上编译能够在与系统A不同的计算机系统B上运行的程序,在B系统上编译A系统中的程序.(2)计算机执行用高级语言编写的程序的途径有哪些?它们之间的主要区别是什么?(武汉大学研究生入学考试试题)答:计算机执行用高级语言编写的程序的途径有两种:解释方式和编译方式。解释方式下直接对源程序解释执行,并得到计算结果。其特点是计算机并不事先对高级语言进行全盘翻译将其全部变为机器代码,而是每读入一条语句,就用解释器将其翻译为机器代码,予以执行,然后再读入下一条高级语句,翻译为机器代码,再执行,如此反复,即边翻译边执行;编译方式下对源程序的执行需要经过翻译阶段和运行阶段才能得到计算结果,其特点是计算机事先对高级语言进行全盘翻译将其全部变为机器代码,再统一执行,即先翻译后执行。它们之间的本质区别在于:解释方式下不生成目标代码,编译方式下将生成可多次执行的目标代码。二者分别相当于翻译中的“口译”和“笔译”。
本文档为【第一章 编译原理概述】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
中小学教育资料汇总
暂无简介~
格式:pdf
大小:1MB
软件:PDF阅读器
页数:59
分类:互联网
上传时间:2023-03-02
浏览量:2