首页 编译原理第一

编译原理第一

举报
开通vip

编译原理第一第一章编译概述什么是编译程序编译原理这门课程主要介绍设计和构造编译程序的基本原理和常用的技术和方法。本章重点介绍编译程序的基本概念。编译的过程编译程序的结构1.1翻译程序与编译程序翻译程序是指这样一个程序,它把一种语言(称作源语言)所写的程序(源程序)翻译成等价的另一种语言(称作目标语言)的程序(目标程序)。源程序翻译程序目标程序1.1翻译程序与编译程序编译程序是一种翻译程序,它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。源程序高级语言程序编译程序目标程序汇编语言或者机器语言程序程序运行阶段采用...

编译原理第一
第一章编译概述什么是编译程序编译原理这门课程主要介绍设计和构造编译程序的基本原理和常用的技术和方法。本章重点介绍编译程序的基本概念。编译的过程编译程序的结构1.1翻译程序与编译程序翻译程序是指这样一个程序,它把一种语言(称作源语言)所写的程序(源程序)翻译成等价的另一种语言(称作目标语言)的程序(目标程序)。源程序翻译程序目标程序1.1翻译程序与编译程序编译程序是一种翻译程序,它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。源程序高级语言程序编译程序目标程序汇编语言或者机器语言程序程序运行阶段采用编译方式在计算机上执行用高级语言编写的程序,需分阶段进行。第一种情况:源程序编译程序机器语言目标程序初始数据运行系统结果编译阶段运行阶段高级语言程序第二种情况:源程序编译程序机器语言目标程序初始数据运行系统结果编译阶段运行阶段汇编程序汇编语言目标程序汇编阶段高级语言程序程序运行阶段高级语言程序也可通过解释程序来执行解释程序:以源程序为输入,在执行过程中不再产生目标程序,而是边解释边执行。以解释方式在计算机上执行高级语言编写的程序只有一个阶段:解释执行阶段。源程序初始数据解释程序计算结果解释程序运行效率不高解释程序、编译程序区别:解释程序在执行过程中不产生目标程序,而是按照源语言的定义解释执行源程序本身。目前,纯粹的解释程序已不多见,通常是将编译和解释作某种程度的结合。口译——解释程序笔译——编译程序1.2编译过程和编译程序的基本结构将英文句子“Iwishyousuccess.”翻译成中文句子的大致过程是:词法分析语法分析语义分析修饰工作翻译成文编译过程编译程序是将一种语言形式翻译成另一种语言形式,因此,其工作过程一般可划分为如下五个阶段:词法分析语法分析语义分析和中间代码生成代码优化目标代码生成floatr,h,s;s=2*3.1416*r*(r+h);例如计算圆柱体 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 面积的程序片断如下:编译过程词法分析阶段的任务是对构成源程序的字符串从左到右进行扫描和分解,根据语言的词法规则,识别出一个一个具有独立意义的单词(也称单词符号,简称符号)。1.词法分析词法规则是单词符号的形成规则,它规定了哪样的字符串构成一个单词符号。词法规则floatr,h,s;s=2*3.1416*r*(h+r);例如上述源程序通过词法分析识别出如下单词符号:基本字float标识符r、h、s常数3.1416、2算符*、+界符(、)、;、,、=词法规则2.语法分析语法分析的任务是在词法分析的基础上,根据语言的语法规则从单词符号串中识别出各种语法单位(如表达式、说明、语句等),并进行语法检查,即检查各种语法单位在语法结构上的正确性。语法规则语言的语法规则规定了如何从单词符号形成语法单位,语法规则是语法单位的形成规则。floatr,h,s;s=2*3.1416*r*(h+r);例如语法规则单词符号串s=2*3.1416*r*(h+r)中,“s”是<变量>,单词符号串“2*3.1416*r*(h+r)”组合成<表达式>这样的语法单位,由<变量>=<表达式>构成<赋值语句>这样的语法单位。3.语义分析和中间代码生成语义分析的任务是首先对每种语法单位进行静态的语义审查,然后分析其含义,并用另一种语言形式(比源语言更接近于目标语言的一种中间代码或直接用目标语言)来描述这种语义。例如,前例中将s=2*3.1416*r*(h+r)翻译成如下形式的四元式中间代码:(1)(*,2,3.1416,T1)(2)(*,T1,r,T2)(3)(+,h,r,T3)(4)(*,T2,T3,T4)(5)(=,T4,__,s)4.代码优化代码优化的任务是对前阶段产生的中间代码进行等价变换或改造,以期获得更为高效即省时间和空间的目标代码。优化主要包括局部优化和循环优化等,例如上述四元式经局部优化后得:(1)(*,6.2832,r,T2)(2)(+,h,r,T3)(3)(*,T2,T3,T4)(4)(=,T4,__,s)5.目标代码生成目标代码生成的任务是将中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。 表格 关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载 管理和错误处理编译程序在工作过程中需要建立一些表格,以登记源程序中所提供的或在编译过程中所产生的一些信息,编译各个阶段的工作都涉及到构造、查找、修改或存取有关表格中的信息,因此,在编译程序中必须有一组管理各种表格的程序。在编译程序的各个阶段中,都要涉及表格管理和错误处理。表格管理和错误处理一个好的编译程序在编译过程中,应具有广泛的程序查错能力,并能准确地报告错误的种类及出错位置,以便用户查找和纠正,因此,在编译程序中还必须有一个出错处理程序。编译程序的结构源程序语义分析和中间代码生成程序语法分析程序词法分析程序代码优化程序目标代码生成程序目标程序表格管理程序出错处理程序(字符串)1.3编译程序的生成方法对源语言和目标语言认真分析设计编译算法选择语言编制程序调试编译程序提交相关文档资料编译程序是一个复杂的系统程序,要生成一个编译程序一般要考虑以下几方面:编译程序的自动生成如目前已广为使用词法分析程序的自动生成系统LEX和语法分析程序自动生成系统YACC等,此外,还有可用来自动产生整个编译程序的软件工具:编译程序产生器,它的功能是将任一语言的词法规则、语法规则和语义解释的描述作为输入,自动生成该语言的编译程序。随着编译技术和自动机理论的发展,近年来已研制出了一些编译程序的自动生成系统。编译程序的自动生成生成编译程序的方法还常采用自编译方式和移植方式。随着并行技术和并行语言的发展,处理并行语言的并行编译技术和将串行程序转换成并行程序的自动并行编译技术正在深入研究之中。1.4编译技术在软件开发中的应用虽然我们只有少数人从事构造或维护程序语言编译程序的工作,但是,大部分系统软件和应用软件的开发,通常要用到编译的原理和技术。1.4编译技术在软件开发中的应用例如,设计词法分析器的串匹配技术已用于正文编辑器、信息检索系统和模式识别程序;上下文无关文法和语法制导定义已用于创建诸如排版、绘图系统和语言结构化编辑器中,代码优化技术已用于程序验证器和从非结构化的程序产生结构化程序的编程之中。本章小结什么是编译程序编译过程的五个阶段编译程序的结构框图编译程序是一种翻译程序,它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。词法分析、语法分析、语义分析和中间代码生成、代码优化、目标代码生成本章小结源程序语义分析和中间代码生成程序语法分析程序词法分析程序代码优化程序目标代码生成程序目标程序表格管理程序出错处理程序(字符串)
本文档为【编译原理第一】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
正方体
暂无简介~
格式:ppt
大小:268KB
软件:PowerPoint
页数:31
分类:
上传时间:2022-05-11
浏览量:0