计算机编译原理常考概念详解

版权申诉
0 下载量 27 浏览量 更新于2024-08-11 收藏 392KB DOCX 举报
编译原理常考概念题 本资源摘要信息涵盖了编译原理的常考概念题,旨在帮助读者快速回顾和理解编译原理的基本概念和要点。下面将对标题、描述、标签和部分内容进行详细的解释和分析。 **编译程序** 编译程序是一个能够把某一种语言(称为源语言)改造为另一种语言(称为目标语言)的程序,而后者与前者在逻辑上是等价的。如果源语言是诸如FORTRAN、PASCAL、ALGOL或COBOL这样的“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”,这样的一个翻译程序就称为编译程序。 **编译程序的组成** 编译程序的组成可以分为前端和后端两个部分。前端包括词法分析程序、语法分析程序、语义分析程序和中间代码生成程序。后端包括代码优化程序和目标代码生成程序。 **遍和解释** 所谓“遍”,也称作“趟”,是对源程序或其等价的中间语言程序从头到尾扫视并完成规定任务的过程。解释程序不产生目标代码,它逐条地取出源程序中的语句,边解释,边执行;解释器把源代码文件边解释成机器语言边交给CPU执行。 **编译和解释的区别** 编译是将源程序翻译成可执行的目标代码,执行可执行程序文件,翻译与执行是分开的。解释程序则不同,它不产生目标代码,而是逐条地解释和执行源程序中的语句。 **高级语言实现的途径** 高级语言实现的途径有两种,一种是解释,另一种是编译。 **句子、句型和语言** 句子是一个文法的实例,例如设G是一个给定的文法,S是文法的开始符号,如果S*x(其中x∈V*),则称x是文法的一个句子。语言是句子的集合。句型是符号串x是从识别符号S推导出来的,x称为一个句型。 **二义性** 若文法中存在这样的句型,它具有两棵不同的语法树,则称该文法是二义性文法。二义性文法有两个不同的最左推导或有两个不同的最右推导或能产生两棵语法树。 **文法的分类** 文法可以分为0型文法(短语结构文法)、1型文法(上下文有关文法)、2型文法(上下文无关文法)和3型文法(正规文法)。每种文法都有其特点和应用场景。 **语法分析** 语法分析的任务是按照文法,从源程序符号串中识别出各类语法成份,同时进行语法检查,为语义分析和代码生成作准备。语法分析可以分为自上而下和自下而上两种方法。 **短语和句柄** 短语是子树的末端(叶子)从左至右连成的串(包括整棵语法树)。句柄是短语的一部分,用于语法分析和语义分析。 本资源摘要信息涵盖了编译原理的基础知识点,旨在帮助读者快速了解和掌握编译原理的基本概念和要点。