编译原理总结

编译原理总结

ID:42743563

大小:529.95 KB

页数:29页

时间:2019-09-21

编译原理总结_第1页
编译原理总结_第2页
编译原理总结_第3页
编译原理总结_第4页
编译原理总结_第5页
资源描述:

《编译原理总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、(1)程序设计语言•机器语言:由0、1代码构成,不需翻译就可直接执行其程序。•汇编语言:机器指令助记符(伪代码)形式,汇编后才可执行其程序。•高级程序设计语言:类自然语言和数学公式形式(2)基本术语•源程序(SourceProgram):用源语言写的程序。源语言可以是汇编语言,也可以是高级程序设计语言。•目标程序(TargetProgram):也称为“结果程序”,是源程序经翻译程序加工以后所生成的程序。目标程序可以用机器语言表示,也可以用汇编语言或其它中间语言表示。•翻译程序(TranslatingProgram):是指把一个源程序翻译成逻辑上等价的目标程序的程

2、序。源程序为其输入,目标程序为其输出。•汇编程序(Assembler):是指把一个汇编语言写的源程序转换成等价的机器语言表示的目标程序的翻译程序。•编译程序(Compiler):若源程序是用高级程序设计语言所写,经翻译程序加工生成目标程序,则该翻译程序就称为“编译程序”,也可称为编译器。•解释程序:是高级语言翻译程序的一种,他将源语言书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序,就像外语翻译中的“口译”一样,不产生全文的翻译文本。•运行系统(RunningSystem):目标程序执行时,需要有一些子程序(如一些连接装配程序及一些连接库等

3、)配合进行工作,由这些子程序组成的一个子程序库称为运行系统。•编译系统(CompilingSystem):编译程序和运行系统合称编译系统。(3)程序的翻译•除机器语言程序外,用其它语言书写的程序都必须经过翻译才能被计算机识别。这一过程由翻译程序来完成。•编译方式是一种分阶段进行的方式,包括翻译和运行两部分。•前一阶段:翻译•后一阶段:运行,由运行系统配合完成。(4)过程1、词法分析阶段这个阶段的任务是从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(也称单词符号或符号TOKEN)。某源程序片断如下:beginvars

4、um,first,count:real;sum:=first+count*10end.保留字beginvarrealend标识符sumfirstcountsumfirstcount界符.逗号,逗号,冒号:分号;加号+乘号*赋值号:=整数10102、语法分析阶段是编译过程的第二个阶段。语法分析的任务是在词法分析的基础上将单词序列分解成各类语法短语,如“程序”,“语句”,“表达式”等等。一般这种语法短语,也称语法单位,或语法成分,或语法范畴。语法分析所依据的是语言的语法规则,即描述程序结构的规则。通过语法分析确定整个输入串是否构成一个语法上正确的程序。3、语义分析阶

5、段依据语言的语义规则,对语法分析得到的语法结构分析其含义以及应进行的运算,审查源程序中有无语义错误,为代码生成阶段收集类型信息。4、中间代码生成在进行了上述的语法分析和语义分析阶段的工作之后,有的编译程序将源程序转变成一种内部表示形式,这种内部表示形式叫做中间代码。所谓“中间代码”是一种结构简单,含义明确的记号系统,这种记号系统可以设计为多种多样的形式。重要的设计原则:一是容易生成;二是容易将它翻译成目标代码。5、代码优化任务:对前阶段产生的中间代码系列进行变换或改造。目的是使生成的目标代码更高效,即省时间省空间。例如上例四个四元式可优化为下面两个四元式。6、目

6、标代码生成任务:将中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。它的工作与硬件系统结构和指令含义有关。7、表格管理编译过程中源程序的各种信息被保留在种种不同的表格里,编译各阶段的工作都涉及到构造、查找或更新有关的表格,因此需要有表格管理的工作;8、出错处理如果编译过程中发现源程序有错误,编译程度应报告错误的性质和错误发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序还能自动校正错误,这些工作称之为出错处理。(5)前端与后端参考上面的图,目的是为了在多种源语言和多种目标语言的开发

7、过程中,可以灵活搭配组合,消除重复开发的工作量,提高编译系统的开发效率。(6)遍所谓遍,是对源程序或源程序的中间形式从头到尾扫视并完成规定任务的过程。每一遍扫视可完成一个阶段或多个阶段的功能。一遍的编译程序:以语法分析程序为核心。多遍扫描的优点:可以减少内存容量的需求,分遍后,以遍为单位分别调用编译的各个程序,各遍程序可以相互覆盖。可使各遍的编译程序相互独立,结构清晰。能够进行充分优化,产生高质量的目标程序。可将编译程序分为前端和后端,有利于编译程序的移植。多遍扫描的缺点每遍都要读符号、送符号,增加了许多重复性的工作,降低编译效率。(7)程序设计语言范型(从支持

8、的计算模式)1.强制(命

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。