编译程序(Compiler).doc

编译程序(Compiler).doc

ID:28577215

大小:268.50 KB

页数:12页

时间:2018-12-11

编译程序(Compiler).doc_第1页
编译程序(Compiler).doc_第2页
编译程序(Compiler).doc_第3页
编译程序(Compiler).doc_第4页
编译程序(Compiler).doc_第5页
资源描述:

《编译程序(Compiler).doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、1.编译程序(Compiler) 编译程序是一种翻译程序,它将不能被计算机识别的某种高级语言翻译成计算机能够识别的低级语言。一般编译程序分成五个逻辑模块:词法分析、语法分析、语义分析和中间代码生成、中间代码优化、目标代码生成。2.解释程序(Intepretter)解释程序是一种翻译程序,它将不能被计算机识别的某种高级语言翻译成计算机能够识别的低级语言。它是逐个语句翻译的,边翻译边执行,不生成目标代码。3.源语言(Sourcelanguage)和源程序(Sourceprogram)  被编译程序翻译的程序称为源程序,

2、书写该程序的语言称为源语言。4.目标语言(ObjectlanguageorTargetlanguage)和目标程序(ObjectprogramorTargetprogram)  编译程序翻译源程序而得到的结果程序称为目标程序,书写该程序的语言称为目标语言.5.词法分析(Lexicalanalysis或Scanning)和词法分析程序(Lexicalanalyzer或Scanner)  词法分析阶段是编译过程的第一个阶段。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词

3、规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。词法分析程序可以使用lex等工具自动生成。6.语法分析(Syntaxanalysis或Parsing)和语法分析程序(Parser)  语法分析是编译过程的一个逻辑阶段。语法分析的任务是在词法分析的基础上将单词序列组合成各类语法短语,如“程序”,“语句”,“表达式”等等.语法分析程序判断源程序在结构上是否正确.源程序的结构由上下文无关文法描述.7.语义分析(Syntaxanalysis)  语义分析是编译过程的一个逻辑阶段.语义分析的任务是对结构上正确的

4、源程序进行上下文有关性质的审查,进行类型审查.例如一个C程序片断:  intarr[2],b;  b=arr*10;  源程序的结构是正确的.  语义分析将审查类型并报告错误:不能在表达式中使用一个数组变量,赋值语句的右端和左端的类型不匹配.8中间代码生成(IntermediateCodeGeneration)在进行了语法分析和语义分析阶段的工作之后,有的编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间语言或中间表示或中间代码。9.中间代码优化(IntermediateCodeOptimization

5、)  所谓代码优化,实质上是对代码进行等价变换,使得变换后的代码运行结果与变换前代码运行结果相同,而运行速度加大或占用存储空间少,或两者都有。10.目标代码生成(ObjectCodeGeneration)将优化后的中间代码转化成等价的目标代码。目标代码主要有机器语言和汇编语言。11.Lex  一个词法分析程序的自动生成工具。它输入描述构词规则的一系列正规式,然后构建有穷自动机和这个有穷自动机的一个驱动程序,进而生成一个词法分析程序.12.Yacc  一个语法分析程序的自动生成工具。它接受语言的文法,构造一个LALR

6、(1)分析程序.因为它采用语法制导翻译的思想,还可以接受用C语言描述的语义动作,从而构造一个编译程序. Yacc是Yetanothercompilercompiler的缩写.13.文法(Grammars)  文法是用于描述语言的语法结构的形式规则。文法G定义为四元组(,,,)。其中为非终结符号(或语法实体,或变量)集;为终结符号集;为产生式(也称规则)的集合;产生式(规则)是形如或a::=b的(a,b)有序对,其中(∪)且至少含有一个非终结符,而(∪)。,和是非空有穷集。称作识别符号或开始符号,它是一个非终结符,至

7、少要在一条规则中作为左部出现。  一个文法的例子:G=(={A,R},={0,1},={A®0R,A®01,R®A1},=A)14.文法分类(AhierarchyofGrammars)  著名语言学家NoamChomsky定义了四类文法和四种形式语言类,文法的四种类型分别是0型、1型、2型和3型。几类文法的差别在于对产生式施加不同的限制。15.0型文法(短语结构文法)(phrasestructuregrammars)  设G=(,,,),如果它的每个产生式是这样一种结构:(∪)  且至少含有一个非终结符,而(∪),

8、则G是一个0型文法。0型文法产生的语言称为0型语言。16. 1型文法(上下文有关文法)(context-sensitivegrammars)  设G=(,,,)为一文法,若中的每一个产生式均满足

9、,仅仅  除外,则文法G是1型或上下文有关的。1型文法产生的语言称为1型语言,也称作上下文有关语言。17. 2型文法(上下文无关文法)(context-freegr

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

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

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