完整版编译原理名词解释

合集下载

(完整word版)编译原理所有名词解释

(完整word版)编译原理所有名词解释

编译程序是一种程序,它把高级语言编写的源程序翻译成与之在逻辑上等价的机器语言或汇编语言的目标程序。

一个高级语言程序的执行通常分为两个阶段,即编译阶段和运行阶段。

如果编译生成的目标程序是汇编语言形式,那么在编译与运行阶段之间还要添加一个汇编阶段。

解释程序也是一种翻译程序,它将源程序作为输入,一条语句一条语句地读入并解释执行。

解释程序与编译程序的主要区别是:编译程序是将源程序翻译成目标程序后再执行该目标程序,而解释程序则是逐条读出源程序中的语句并解释执行,即在解释程序的执行过程中并不源程序产生目标程序。

析阶段、语义分析和中间代码生成阶段、优化阶段和目标代码生成阶段。

词法分析的任务是对构成源程序的字符串进行扫描和分解,根据语言的词法规则识别出一个个具有独立意义的单词;语法分析的任务是在词法分析的基础上,根据语言的语法规则(文法规则)从单词符号串中识别出各种语法单位并进行语法检查;语义分析和中间代码生成阶段的任务是首先对每种语法单位进行静态语义检查,然后分析其含义,并用另一种语言形式来描述这种语义即生成中间代码;优化的任务是对前阶段产生的中间代码进行等价变换或改造,以期获得更为高效(节省时间和空间)的目标代码;的任务是把中间代码(或经优化处、理之后)变换成特编译程序结构示意图定机器上的机器语言程序或汇编语言程序,实现最终的翻译工作。

形式化的方法:用一整套带有严格规定的符号体系来描述问题的方法。

标识符:以字母打头的字母数字串字母表:是元素的非空有穷集合。

字符:字母表中的元素称为符号,或称为字符。

可以是字母、数字和其他符号。

符号串的运算:符号串的连接、集合的乘积、符号串的幂运算、集合的幂运算、集合A的正闭包A+与闭包A*形式语言:字母表上所有的字符按照某种规则所组成的集合。

句子:均对应与字母表中的符号串。

文法:是规则的非空有穷集合(描述语言的文法不唯一)文法四元组:G[S]=(V N,V T,P,S) V N :非终结符集V T:终结符集(V N ^ V T=空集)P:产生式集S:文法的开始符号直接推导:在推导过程中只使用了一个产生式。

编译原理术语中英文对照表

编译原理术语中英文对照表
Environment pointer
环境指针
-closure
空串的闭包
-production
空产生式
Epsilon symbol
Equation
等式
Error correction
改正错误
Error detection
错误检测
Error handling
错误处理
Error recovery
错误恢复
chapter
Back end compiler
编译程序后端
Backslash character \
反斜线
Backtracking
回退,回溯
Backtracking parsing
回溯式语法分析
Backus-Naur form(BNF)
巴克斯范式
Base address (of array)
基地址
地址描述符
Address mode
地址模式
algorithm
算法
Alias
别名
Allocation of variables
变量分配
Alphabet
字母表
Alternative
选择符
Ambiguity
二义性
Ambiguous definitionຫໍສະໝຸດ 二义性定义Analysis
分析
Annotated parse tree
空格符
Blocks
基本块
Boolean
布尔
Bottom-up parsing
自底向上语法分析
Bracketing keywords
括号类关键字
Breakpoint
断点

《编译原理》课后习题答案

《编译原理》课后习题答案

第7 题证明下述文法G[〈表达式〉]是二义的。

〈表达式〉∷=a|(〈表达式〉)|〈表达式〉〈运算符〉〈表达式〉〈运算符〉∷=+|-|*|/答案:可为句子a+a*a 构造两个不同的最右推导:最右推导1 〈表达式〉=>〈表达式〉〈运算符〉〈表达式〉=>〈表达式〉〈运算符〉a=>〈表达式〉* a=>〈表达式〉〈运算符〉〈表达式〉* a=>〈表达式〉〈运算符〉a * a=>〈表达式〉+ a * a=>a + a * a最右推导2 〈表达式〉=>〈表达式〉〈运算符〉〈表达式〉=>〈表达式〉〈运算符〉〈表达式〉〈运算符〉〈表达式〉=>〈表达式〉〈运算符〉〈表达式〉〈运算符〉a=>〈表达式〉〈运算符〉〈表达式〉* a=>〈表达式〉〈运算符〉a * a=>〈表达式〉+ a * a=>a + a * a第8 题文法G[S]为:S→Ac|aB A→ab B→bc该文法是否为二义的?为什么?答案:对于串abc(1)S=>Ac=>abc (2)S=>aB=>abc即存在两不同的最右推导。

所以,该文法是二义的。

或者:对输入字符串abc,能构造两棵不同的语法树,所以它是二义的。

第9 题考虑下面上下文无关文法:S→SS*|SS+|a(1)表明通过此文法如何生成串aa+a*,并为该串构造语法树。

(2)G[S]的语言是什么?答案:(1)此文法生成串aa+a*的最右推导如下S=>SS*=>SS*=>Sa*=>SS+a*=>Sa+a*=>aa+a*(2)该文法生成的语言是:*和+的后缀表达式,即逆波兰式。

第10 题文法S→S(S)S|ε(1) 生成的语言是什么?(2) 该文法是二义的吗?说明理由。

答案:(1)嵌套的括号(2)是二义的,因为对于()()可以构造两棵不同的语法树。

第11 题令文法G[E]为:E→T|E+T|E-T T→F|T*F|T/F F→(E)|i证明E+T*F 是它的一个句型,指出这个句型的所有短语、直接短语和句柄。

(完整word版)计算机编译原理名词解释_总结版

(完整word版)计算机编译原理名词解释_总结版

2.二义性文法:如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义性文法。

5.最左推导:任何一步α=>β都是对α中的最右非终结符替换。

6.语法:一组规则,用它可形成和产生一组合式的程序。

7.文法:描述语言的语法结构的形式规则。

8.基本块:指程序中一顺序执行的语句序列,其中只有一个入口和一个出口,入口就是其中的第一个语句,出口就是其中的最后一个语句。

10.短语:令G 是一个文法,S 划文法的开始符号,假定αβδ是文法G 的一个句型,如果有S αAδ且A β,则称β是句型αβδ相对非终结符A 的短语。

12.规范句型:由规范推导所得到的句型。

13.扫描器:执行词法分析的程序。

15.句柄:一个句型的最左直接短语。

16.语法制导翻译:在语法分析过程中,根据每个产生式所对应的语义程序进行翻译的方法 叫做语法制导翻译。

18.素短语:素短语是指这样一个短语,至少含有一个终结符,并且,除它自身外不再含任何更小的素短语。

20.语义:定义程序的意义的一组规则。

三种级别:局部优化、循环优化、全局优化21.词法分析词法分析的主要任务是从左向右扫描每行源程序的符号,按照词法规则从构成源程序的字符串中识别出一个个具有独立意义的最小语法单位,并转换成统一的内部表示(token),送给语法分析程序。

23.语法树句子的树结构表示法称为语法树(语法分析树或语法推导树)。

给定文法G=(V N ,V T ,P ,S),对于G 的任何句型都能构造与之关联的语法树。

这棵树具有下列特征:(1)根节点的标记是开始符号S 。

(2)每个节点的标记都是V 中的一个符号。

(3)若一棵子树的根节点为A ,且其所有直接子孙的标记从左向右的排列次序为A 1A 2…A R ,那么A →A 1A 2…A R 一定是P 中的一条产生式。

(4)若一标记为A 的节点至少有一个除它以外的子孙,则A ∈V N 。

(5)若树的所有叶节点上的标记从左到右排列为字符串w ,则w 是文法G 的句型;若w 中仅含终结符号,则w 为文法G 所产生的句子。

编译原理基础

编译原理基础

第一章引论主要内容:编译原理的基本概念、定义、编译原理的应用发展和现状。

重点:编译程序工作的基本构成及各阶段的基本任务,具体要求:理解什么是编译程序,了解各编译程序的基本构成及各阶段的基本任务,编译程序总框,了解编译程序生成过程和构造工具。

一、名词解释1、编译程序:能够把用各种高级语言书写的源程序翻译成某种等价的目标程序的翻译程序。

2、遍:指编译程序对源程序或中间代码程序从头到尾扫描一次。

3、静态分配:在编译时就能够安排好目标程序运行时的全部数据空间。

二、问答题1、简述编译程序的结构?答:编译程序包括词法分析、语法分析、中间代码生成、优化,目标代码产生五个阶段,上述各阶段中还要进行表格处理和出错处理的工作。

2、编译程序可分成哪几个阶段?它们之间的关系如何?答:编译程序可分为五个阶段:词法分析、语法分析、中间代码生成、优化、目标代码生成。

上述五个阶段之间每个阶段输出为作下一阶段的输入,第一阶段的输入是源程序,最后阶段的输出是目标代码程序。

注意:编译过程中,阶段的划分和遍的划分不一定相同第二章高级程序语言概述主要内容:程序语言定义、初等数据类型、数据结构、表达式、语句、高级语言的一般特征及程序语言的语法描述。

重点:程序语言定义具体要求:理解程序语言的词法、语法和语义等概念;熟悉高级程序语言的一般结构和主要共同特征。

一、填空题1、程序语言是由(语法)和(语义)两方面定义的。

2、一个名字的属性包括(类型)和(作用域)3、目标代码一般有三种形式:能够立即执行的机器语言代码,(待装配的机器语言模块)和(汇编语言代码)4、语义:定义一个程序的意义的(一组规则)5、2型文法又称为(上下文无关文法),3型文法又为(正规文法)二、是非题1、虽然名字都是用标识符表示的,但名字和标识符有着本质的区别(对)2、各种名字都是用标识符表示的,所以名字和标识没有本质的区别(错)3、数组元素的地址计算与数组的存储方式没有关系(错)4、语法是指程序的含义(错)5、因名字都是用标识符表示的,故名字与标识符没有区别(错)第三章词法分析主要内容:词法分析器的任务、词法分析器的设计、正规表达式与有限自动机、词法分析器的自动生成。

编译原理复习题集

编译原理复习题集

《编译原理》复习题集1.名词解释短语句柄文法上下文无关文法LL(1)文法LR(1)文法语法分析无环路有向图(DAG)后缀式语法制导翻译遍局部优化词法分析语法分析语义分析源语言源程序目标语言中间语言(中间表示)2.简答题(1)编译程序和高级语言有什么区别?(2)编译程序的工作分为那几个阶段?(3)简述自下而上的分析方法。

(4)目标代码有哪几种形式?生成目标代码时通常应考虑哪几个问题?(5)何谓优化?按所涉及的程序范围可分为哪几级优化?(6)简述代码优化的目的和意义。

3.叙述下面的正规式描述的语言,并画出接受该语言的最简DFA的状态转换图。

( 1 | 01 )* 0*4.Pascal语言无符号数的正规定义如下:num→digit+ (.digit+)? (E(+|-)? digit+)?其中digit表示数字,用状态转换图表示接受无符号数的确定有限自动机。

5.画出Pascal中实数(不带正负号,可带指数部分)的状态转换图。

6.用状态转换图表示接收(a|b)*aa的确定的有限自动机。

7.处于/* 和 */之间的串构成注解,注解中间没有*/。

画出接受这种注解的DFA的状态转换图。

8.某操作系统下合法的文件名为device:name.extension其中第一部分(device:)和第三部分(.extension)可缺省,device, name和extension都是字母串,长度不限,但至少为1,画出识别这种文件名的确定有限自动机。

9.构造一个DFA,它接受∑={0, 1}上0和1的个数都是偶数的字符串。

10.设有非确定的有自限动机 NFA M=({A,B,C},{0,1},δ,{A},{C}),其中:δ(A,0)={C} δ (A,1)={A,B} δ (B,1)={C} δ (C,1)={C}。

请画出状态转换距阵和状态转换图。

11.设L⊆ {a,b,c}* 是满足下述条件的符号串构成的语言:(1)若出现a ,则其后至少紧跟两个c ;(2)若出现b ,其后至少紧跟一个c 。

编译原理复习题集

编译原理复习题集

《编译原理》复习题集1.名词解释短语句柄文法上下文无关文法LL(1)文法LR(1)文法语法分析无环路有向图(DAG)后缀式语法制导翻译遍局部优化词法分析语法分析语义分析源语言源程序目标语言中间语言(中间表示)2.简答题(1)编译程序和高级语言有什么区别?(2)编译程序的工作分为那几个阶段?(3)简述自下而上的分析方法。

(4)目标代码有哪几种形式?生成目标代码时通常应考虑哪几个问题?(5)何谓优化?按所涉及的程序范围可分为哪几级优化?(6)简述代码优化的目的和意义。

3.叙述下面的正规式描述的语言,并画出接受该语言的最简DFA的状态转换图。

( 1 | 01 )* 0*4.Pascal语言无符号数的正规定义如下:num→digit+ (.digit+)? (E(+|-)? digit+)?其中digit表示数字,用状态转换图表示接受无符号数的确定有限自动机。

5.画出Pascal中实数(不带正负号,可带指数部分)的状态转换图。

6.用状态转换图表示接收(a|b)*aa的确定的有限自动机。

7.处于/* 和 */之间的串构成注解,注解中间没有*/。

画出接受这种注解的DFA的状态转换图。

8.某操作系统下合法的文件名为device:name.extension其中第一部分(device:)和第三部分(.extension)可缺省,device, name和extension都是字母串,长度不限,但至少为1,画出识别这种文件名的确定有限自动机。

9.构造一个DFA,它接受∑={0, 1}上0和1的个数都是偶数的字符串。

10.设有非确定的有自限动机 NFA M=({A,B,C},{0,1},δ,{A},{C}),其中:δ(A,0)={C} δ (A,1)={A,B} δ (B,1)={C} δ (C,1)={C}。

请画出状态转换距阵和状态转换图。

11.设L⊆ {a,b,c}* 是满足下述条件的符号串构成的语言:(1)若出现a ,则其后至少紧跟两个c ;(2)若出现b ,其后至少紧跟一个c 。

编译原理全复习(完整版)

编译原理全复习(完整版)

1》编译程序的框架图与功能块:(1)画出编译程序的总体结构,并简述各部分的主要功能:七个部分(2)编译程序的结构分为几个阶段,各阶段的任务是什么?答编译程序总框架(1)词法分析器,又称扫描器,输入源程序,进行词法分析,输出单词符号。

(2)语法分析器,简称分析器,对单词符号串进行语法分析(根据语法规则进行推导或规约),识别出各类语法单位,最终判断输入串是否构成语法上正确的“程序”。

(3)语义分析与中间代码产生器,按照语义规则对语法分析器归约出(或推导出)的语法单位进行语义分析并把它们翻译成一定形式的中间代码。

(4)优化器,对中间代码进行优化处理。

(5)目标代码生成器,把中间代码翻译成目标程序。

(6)表格管理,登记源程序的各类信息,编译各阶段的进展状况。

(7)出错管理,把错误信息报告给用户。

编译程序的结构分为五个阶段:(1)词法分析.任务是:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词(亦称单词符号或简称符号),如基本字,标识符,常熟,算符和界符。

(2)。

语法分析,任务是:在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位(语法范畴)。

(3)语义分析与中间代码产生。

任务:对语法分析所识别出的各类语法范畴,分析其含义,并进行初步翻译(产生中间代码)。

(4)优化。

任务在于对前段产生的中间代码进行加工变换,以期在最后阶段能产生出更为高效(省时间和空间)的目标代码。

(5)目标代码生成。

任务是:把中间代码(或优化出理之后)变换成特定机械上的低级语言代码。

2》.重要概念:a. 编译程序:是指能够把源语言程序转换成逻辑上等价的目标语言程序的一个程序。

b. 单词符号:是语言的基本组成成分,是人们理解和编写程序的基本要素,是语言中具有独立意义的最基本结构,它一般包括:基本字、标识符、常数、运算符和界符等c. 中间代码:是一种含义明确,便于处理的记号系统,它通常独立于具体的硬件。

编译原理知识点汇总

编译原理知识点汇总

编译原理编译原理编译器是什么?知识树基本过程词法分析语言正则语言正则定义如何让计算机识别用正则表达式定义的语言NFA 非确定有限自动机DFA 确定有限自动机正则表达式转 NFA直接用 NFA 识别语言直接从正则表达式转 DFA最小化 DFA 的算法语法分析语法的形式化:上下文无关文法推导推导 derivation字符串符号文法语法分析树文法的二义性文法二义性的消除消除左递归消除直接的左递归消除间接的左递归计算 first() 集合计算 follow(A) 集合LL(1) 文法的分析表自底向上的文法分析SLR 文法LR(0) 项扩充文法自动机的过程Closure of Item SetsSLR 分析表的构建(重点)LR(1) 文法构造 LR(1) 分析表缺点LALR 文法语法制导定义基本思想举例语法制导定义继承属性翻译模式再次举例:中缀转后缀扩展文法扩展语法树通过自顶向下的分析来实现先序遍历实现先序遍历Evaluation Order and Dependency Graphs 显式的语法分析树S-属性制导定义L-属性制导定义需要满足三条规则:语义分析和中间代码生成Introduction3 地址代码1. 类型和声明举例来说明翻译过程2. 赋值和表达式类型检查3. 布尔表达式和流控制流控制的语法制导定义布尔表达式的语法制导定义运行时环境内存管理stack 和活动记录活动树活动记录(帧)进程内通信堆管理多线程垃圾回收代码生成指令选择寄存器分配和赋值指令调度抽象目标状态机指令集基本块流图生存期和后续使用信息简单代码生成器代码优化窥孔优化局部优化控制流分析和循环优化消除共同子表达式✔编译器是什么?编译器是一个程序,主要是用来把源程序转换成另外一种计算机语言的程序。

语言编译的全过程:✔知识树编译原理正则语言识别 T oken上下文无关文法CFG 构建语法分析树语法制导翻译生成中间代码代码优化代码生成编译原理是一种语言处理器,它完成了很多工作。

《编译原理》复习题及答案

《编译原理》复习题及答案

《编译原理》课程复习资料一、判断题:1.一个上下文无关文法的开始符,可以是终结符或非终结符。

[ ]2.一个句型的直接短语是唯一的。

[ ]3.已经证明文法的二义性是可判定的。

[ ]4.每个基本块可用一个DAG表示。

[ ]5.每个过程的活动记录的体积在编译时可静态确定。

[ ]6.2型文法一定是3 型文法。

[ ]7.一个句型一定句子。

[ ]8.算符优先分析法每次都是对句柄进行归约。

[ ]9.采用三元式实现三地址代码时,不利于对中间代码进行优化。

[ ]10.编译过程中,语法分析器的任务是分析单词是怎样构成的。

[ ]11.一个优先表一定存在相应的优先函数。

[ ]12.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。

[ ]13.递归下降分析法是一种自下而上分析法。

[ ]14.并不是每个文法都能改写成 LL(1)文法。

[ ]15.每个基本块只有一个入口和一个出口。

[ ]16.一个 LL(1)文法一定是无二义的。

[ ]17.逆波兰法表示的表达试亦称前缀式。

[ ]18.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。

[ ]19.正规文法产生的语言都可以用上下文无关文法来描述。

[ ]20.一个优先表一定存在相应的优先函数。

[ ]21.3型文法一定是2 型文法。

[ ]22.如果一个文法存在某个句子对应两棵不同的语法树,则文法是二义性的。

[ ]二、填空题:1. 称为规范推导。

2.编译过程可分为,,,和五个阶段。

3.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是。

4.从功能上说,程序语言的语句大体可分为语句和语句两大类。

5.语法分析器的输入是,其输出是。

6.扫描器的任务是从中识别出一个个。

7.符号表中的信息栏中登记了每个名字的有关的性质,如等等。

8.一个过程相应的DISPLAY表的内容为。

9.一个句型的最左直接短语称为句型的。

10.常用的两种动态存贮分配办法是动态分配和动态分配。

最全的编译原理知识点--完美总结

最全的编译原理知识点--完美总结

不容易掌握。 38.实现扩充语言编译程序的方式有: 直接法:直接接受扩充式语言,并按语言的语义规则处理。 间接法:接受串行源程序(或带并行指示标志的串行源程序),并行编译程序对源程序进 行并行性检查,将检测到的并行成分转换成并行语句。或者立即进行并行编译处理。 39.并行粒度是对并行执行任务或者事务大小的度量。 分为作业级,用户级,程序级,指令级(语 句级)。作业级粒度最大,指令级粒度最小。并行编译程序应该选择适当的并行粒度。 40.加速比 Sp 可认为是应用程序在单处理机上串行执行时间 Ts 和 p 个处理器并行执行的时 间 Tp 之比,即 Sp=Ts/Tp。分析比较并行编译程序所生成的目标程序的执行速度是可用此 指标。 41.并行硬件上实现神经模型和连接机制模型途径: 用大量的专门的神经元器件连接成特定的模型。用通用并行计算机支持各种连接模型。 第二章 1. 字母表:字母表是元素的非空有穷集合。字母表中的元素称为符号。 2. 符号串:符号的有穷序列成为符号串。什么符号也不包含的符号称为空符号串。符号串 中符号的个数称为符号的长度。 3. 符号串相等 若 xy 是集合上的两个符号串。且符号串的每个元素和元素的位置均相等时 符号串相等。 4. 符号串的正闭包:A+ 为集合 A 上所有符号串的集合。 5. 符号串的自反闭包:A* 自反闭包不包含 A 本身 A+=AA*=A*A 6. 文法: 文法是对语言结构的定义与描述。 即从形式上用于描述和规定语言结构的称为 “文 法” (或称为“语法” ) 。对于 we 妇女发 要研究它的句型、句子和语言。 7. 语法规则:我们通过建立一组规则,来描述句子的语法结构。规定用“::=”表示“由„„ 组成”或“定义为„„” 。 8. 产生式的定义;设 VN、 VT 分别是非空有限的非终结符号集和终结符号集, V=VN∪ VT ,VN∩VT=Φ 。 一个产生式是一个有序偶对(α ,β ),其中α ∈V+,β ∈V*,通常表示 为α →β 或α ::=β 。称α 为产生式的左部,称β 为产生式的右部。产生式又称为重写规 则,它意味着能将一个符号串用另一个符号串替换。 9. 文法的定义:文法 G =(VN,VT,P,S) 。VN:非终结符号集。VT:终结符号集。P: 产生式或规则的集合。S:开始符号(识别符号) S∈VN. 10.文法和语言分类 Chomsky 将文法分为四类:0 型、1 型、2 型、3 型。这几类文法的差别 在于对产生式施加不同的限制。 11.0 型文法:P: α ::=β 其中α ∈(VN∪VT)+,β ∈(VN∪VT)* 0 型文法称为短语结构文法。规则的左部和右部都可 以是符号串,一个短语可以产生另一个短语。 0 型语言:L0 这种语言可以用图灵机(Turing)接受。 12.1 型文法: P: γ 1Aγ 2::= γ 1δ γ 2 其中 γ 1,γ 2∈(VN∪VT)*, A∈VN, δ ∈ (VN∪VT)+ 称为上下文有关文法或上下文敏感文法。也即只有在 γ 1,γ 2 这样的上下文中才能把 A 改写为δ 1 型语言:L1 这种语言可以由一种线性界限自动机接受.

编译原理--名词解释

编译原理--名词解释

名词解释1、编译:编译程序的翻译过程。

词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成. 语言:由文法G生成的语言记为L(G),它是文法G的一切句子的集合:L(G)={x|S =>* x,其中S为文法的开始符号,且x ∈VT*}2、义文法:若一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的。

或者,若一个文法存在某个句子有两个不同的最左(右)推导,则称这个文法是二义的。

3、二义语言:如果产生上下文无关语言的每一个文法都是二义的,则说此语言是先天二义的。

4、属性文法:属性文法(attribute grammar)是一个三元组:A=(G,V,F),其中G:是一个上下文无关文法,V:有穷的属性集,F:关于属性的属性断言或一组属性的计算规则(称为语义规则) 。

5、活动记录:一个过程的一次执行所需要的信息,使用一个连续的存储区来管理这个区(块),叫做一个活动记录AR。

6、词法:规定什么是正确的单词,boy 不能写成byo等等。

7 、语法(文法):是指一组规则,用它可以形成和产生一个合适的程序。

(定义什么样的符号序列是合法的)8 、语义:自然语言中词语的意义,逻辑形式系统中符号的解释。

(定义什么样的符号序列是有含义的)9 、句子:有文法G[s],若S =>* x,且x∈VT*,则称x是文法G的句子。

10 、句型:有文法G[s],若S =>* x,则称x是文法G的句型。

11 、语法树:设G=( VN,VT,P,S)为一cfg,若一棵树满足下列4个条件,则此树称作G的语法树。

12 、最左/最右推导:在推导的任何一步α β,其中α、β是句型,都是对α中的最左(右)非终结符进行替换。

13 、自上而下分析:从文法的开始符号出发,反复使用文法的产生式,寻找与输入符号串匹配的推导,或者说,为输入串寻找一个最左推导。

14 、自下而上分析:从输入符号串开始,逐步进行归约,直至归约到文法的开始符号。

编译原理名词解释

编译原理名词解释

编译原理名词解释1. 词法分析器(Lexer):也称为扫描器(Scanner),用于将源代码分割成一个个单词(Token)。

2. 语法分析器(Parser):将词法分析器生成的单词序列转换成语法树(Parse Tree)或抽象语法树(Abstract Syntax Tree)。

3. 语法树(Parse Tree):表示源代码的语法结构的树状结构,它由语法分析器根据语法规则生成。

4. 抽象语法树(Abstract Syntax Tree):比语法树更加简化和抽象的树状结构,用于表示源代码的语义结构。

5. 语义分析器(Semantic Analyzer):对抽象语法树进行语义检查,并生成中间代码或目标代码。

6. 中间代码(Intermediate code):一种介于源代码和目标代码之间的中间表示形式,可以被不同的优化器和代码生成器使用。

7. 目标代码生成器(Code Generator):将中间代码转换成特定目标平台的机器代码。

8. 优化器(Optimizer):用于对中间代码进行优化,以提高代码的执行效率和资源利用率。

9. 符号表(Symbol Table):用于存储程序中的标识符(变量、函数等)的信息,包括名称、类型等。

10. 语言文法(Grammar):定义了一种语言的语法规则,常用的形式包括上下文无关文法和正则文法。

11. 上下文无关文法(Context-free Grammar):一种形式化的语法表示方法,由产生式和非终结符组成,描述一种语言的句子结构。

12. 语言解释器(Interpreter):将源代码逐行解释执行的程序,不需要生成目标代码。

13. 回溯法(Backtracking):一种递归式的算法,用于在语法分析过程中根据产生式进行选择。

14. 正则表达式(Regular Expression):用于描述一类字符串的表达式,可以用于词法分析中的模式匹配。

15. 自顶向下分析(Top-down Parsing):从文法的起始符号开始,按照语法规则逐步构建语法树的过程。

编译原理名词解释

编译原理名词解释

1.可以采用边翻译边执行的解释执行方式,这种处理程序称为解释程序。

解释程序的结果是源程序的执行结果。

2.先用目标机的汇编语言或机器语言书写源语言的一个子集的编译程序,然后再用这个子集作为书写语言,实现源语言的编译程序.通常这个过程会分成若干步,像滚雪球一样直到生成预计源语言的编译程序为止.我们把这样的实现方式称为自展技术.3.前端主要依赖于源语言而与目标机无关,包括词法分析、语法分析、语义分析和中间代码生成。

后端工作指那些以来与目标机而一般不依赖源语言,至于中间代码有关的那些阶段,及目标代码生成以及先关出错处理和符号表操作。

4.编译过程划分为:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成六个阶段。

词法分析:从左到右一个字符一个字符的读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词。

语法分析:在词法分析的基础上将单词分解成各类语法短语,如“程序”、“语句”、“表达式”。

语义分析:审查源程序有无语义错误,为代码生成阶段收集类型信息。

中间代码生成:进行了语法分析和语义分析之后,有的编译程序将源代码生成一种内部代码,这种内部表现形式叫中间语言或中间代码。

代码优化:对前阶段产生的中间代码进行变换或进行改造,目的是使生成的目标代码更为高效,即省时间和省空间目标代码生成:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。

多余状态:从自动机开始状态出发,任何输入都打不到的状态或从该状态出发到不了终止状态。

等价状态:从状态A出发能由某一字符串而停止于终态,从状态B出发也能得出同一字符串而终止,A与b等价正则式:就是记录文本规则的代码基本快:指程序中一个顺序执行的语句,其中只有一个入口语句和一个出口语句,执行的只能从其入口语句进入其出口语句退出*闭包:设A为集合,则定义A的*闭包为A*=A0 UA+可归规范前缀:若含有句柄的规范前缀,且每个句柄是a的后缀称a是可归规范前缀。

编译原理的名词解释

编译原理的名词解释

编译原理的名词解释编译原理是计算机科学中的一门重要课程,它研究的是如何将高级语言程序转化为计算机能够执行的机器指令。

编译原理涉及许多专业术语和概念,下面将对其中一些重要的名词进行解释。

词法分析(Lexical Analysis)词法分析是编译过程中的第一个阶段,也被称为扫描器。

它负责将源程序中的字符序列转化为单词(词法单元)的序列。

在词法分析的过程中,会忽略不需要关注的字符,如空格和注释。

语法分析(Syntax Analysis)语法分析是编译过程中的第二个阶段,也被称为解析器。

它负责根据词法分析阶段产生的词法单元序列,构建出一棵语法树。

通过语法分析,可以检查源程序是否符合语法规范,并将程序转化为抽象语法树。

语义分析(Semantic Analysis)语义分析是编译过程中的第三个阶段,它负责对语法树进行语义检查和语义规则的应用。

语义分析可以捕捉到一些错误,在编译过程中对源程序进行修正。

此外,语义分析还对程序中的语义逻辑进行处理,包括类型检查、作用域检查等。

中间代码生成(Intermediate Code Generation)中间代码是一种介于高级语言和目标机器语言之间的中间形式。

中间代码生成是编译过程中的一个重要阶段,它将源程序翻译为一种中间表示形式。

中间代码的生成可以便于程序的优化和后续阶段的处理。

代码优化(Code Optimization)代码优化是编译过程中的一个关键环节,它旨在改进生成的目标代码的效率和质量。

代码优化技术包括常量传播、死代码消除、循环优化等。

通过代码优化,可以提高程序的执行效率和资源利用率,改善程序的性能。

目标代码生成(Code Generation)目标代码生成是编译过程中的最后一个阶段,它将中间代码转化为目标机器的机器指令。

目标代码生成需要考虑目标机器的硬件特性和指令集,将中间代码转化为可以被计算机直接执行的机器指令。

符号表(Symbol Table)符号表是编译器中非常重要的数据结构,用于存储程序中出现的所有标识符的信息。

武汉纺织大学编译原理重点总结

武汉纺织大学编译原理重点总结

或者:允许 0 开头的非负整数?
G[N]的语言是什么?
3. 为只包含数字、加号和减号的表达式,例如 9-2+5,3-1,7 等构造一个文法。 答案: G[S]: S->S+D|S-D|D
D->0|1|2|3|4|5|6|7|8|9
4.已知文法 G[Z]: (1)Z::=aZb (2)Z::=ab 写出 L(G[Z])的全部元素。 答案: L(G[Z])={a^nb^n|n>=1}
DFA 的状态图:
令 P0=({0,1,2,5,6},{3,4})用 b 进行分割: P1=({0,5, 6},{1,2},{3,4})再用 b 进行分割: P2=({0},{5, 6},{1,2},{3,4})再用 a、b 进行分割,仍不变。 再令{0}为 A,{1,2}为 B,{3,4}为 C,{5,6}为 D。 最小化为:
2. 编译程序有哪些主要构成成分?各自的主要功能是什么? 答案: 编译程序主要包含 6 个组成部分,它们是词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、中间 代码优化程序、目标代码生成程序。 其各部分的主要功能简述如下: 词法分析程序:输人源程序,拼单词、检查单词和分析单词,输出单词的机内表达形式。 语法分析程序:检查源程序中存在的形式语法错误,输出错误处理信息。 语义分析程序:进行语义检查和分析语义信息,并把分析的结果保存到各类语义信息表 中。 中间代码生成程序:按照语义规则,将语法分析程序分析出的语法单位转换成一定形式 的中间语言代码,如三元式或四元式。 中间代码优化程序:为了产生高质量的目标代码,对中间代码进行等价变换处理。 目标代码生成程序:将优化后的中间代码程序转换成目标代码程序。 (表格管理程序,错误处理程序不是主要构成成分)

(完整版)编译原理名词解释

(完整版)编译原理名词解释

1. 源语言:书写源程序所使用的语言2. 源程序:用程序设计语言书写的程序3. 目标语言:计算机的机器指令。

目标语言可以是机器语言,也可以是汇编语言,或者是其他中间语言,但最终结果必是机器语言。

4. 目标程序:由机器指令构成的程序。

目标程序是经过翻译程序加工后用目标语言表示的程序。

5. 翻译程序:能够把某一种语言程序(源程序)改造成另一种语言程序(目标程序)将源程序译成逻辑上等价的目标程序的程序。

翻译程序有两种工作方式:编译和解释。

6. 编译程序:也称翻译程序7. 解释程序:有些翻译程序在翻译过程中并不产生完整的目标程序,而是翻译一句,解释执行一句,这样的称为解释程序。

8. 汇编程序:由汇编语言写成的程序9. 词法分析:执行词法分析的程序成为词法分析器,词法分析依据的是语言构词规则。

词法分析器从文件读入源程序,由字符拼接单词。

每当识别出一个单词,词法分析器就输出这个单词的内部码。

10. 语法分析:执行语法分析的程序叫做语法分析器。

语法分析的任务就是根据语言的规则,将词法分析器所提供的单词种别分成各类语法范畴。

11. 中间代码生成:中间代码产生有时称为语义分析,执行中间代码产生的程序称为中间代码生成器。

他的任务时按照语法分析器所识别出的语法范畴产生相应的中间代码,并建立符号表、常数表,等各种表格。

12. 目标代码生成:执行目标代码生成的程序称为目标代码生成器。

他的任务是根据中间代码和表格信息,确定各类数据在内存中的位置,选择合适的指令代码,将中间代码翻译成汇编语言或机器指令,这部分工作与计算机硬件有关。

13. 符号表:用于记录源程序中出现的标识符,一个标识符往往具有一系列的语义值,她包括标识符的名称、种属、类型、值存放的地址等等。

14. 常数表:用于记录在源程序中出现的常数。

15. 编译程序前端:是由词法分析器、语法分析器和中间代码产生器组成的。

她的特点是依赖于被编译的源程序,输出结果用中间代码描述,和目标机器无关。

编译原理名词解释

编译原理名词解释

编译原理名词解释.名词解释:1)前缀答:前缀——是指符号串任意首部。

2)可归前缀答:可归前缀——是指规范句型的一个前缀,这种前缀包含句柄且不含句柄之后的任何符号。

3)活前缀答:活前缀——规范句型的一个前缀,这种前缀不含句柄之后的任何符号。

或给定文法规范句型的可归前缀的任意首部。

4)简单短语答:简单短语——设G[Z]是给定文法,w=xuy∈V+,为该文法的句型,如果满足下面两个条件:① Z xUy;② Uu;则称句型xuy 中的子串u是句型xuy的简单短语。

5)扫描遍答:扫描遍——指编译程序对源程序或中间代码程序从头到尾扫描一次。

6)句柄答:句柄——给定句型中的最左简单短语就是句柄。

7)句型答:句型——设G是一个给定的文法,S是文法的开始符号,如果Sx(其中x∈V*),则称x是文法的一个句型。

8)句子答:句子——设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈VT*),则称x是文法的一个句子。

9)非终结符答:非终结符—出现在文法产生式的左部且能派生出符号或符号串的那些符号称为非终结符号。

10)终结符答:终结符——出现在文法产生式的右部且不能派生出符号或符号串的那些符号称为终结符号。

11)属性文法答:一个属性文法形式的定义为一个三元组AG,AG=(G,V,E)。

其中G为一个上下文无关文法;V为属性的有穷集;E为一组语义规则。

12)语法制导翻译答:语法制导翻译——语法制导翻译就是在语法分析的过程中,当进行推导或归约时同步完成附加在所使用的产生式上的语义规则描述的动作,从而实现语义处理。

13)后缀式答:后缀式——一种把运算量(操作数)写在前面,把算符写在后面(后缀)的表示法。

14)短语答:短语——设G[Z]是给定文法,w=xuy∈V+,为该文法的句型,如果满足下面两个条件:① Z xUy;② U u;则称句型xuy 中的子串u是句型xuy的短语。

或:句型语法树的全部子树的叶从左到右排列起来构成的符号串均是句型的短语。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 源语言:书写源程序所使用的语言
2. 源程序:用程序设计语言书写的程序
3. 目标语言:计算机的机器指令。

目标语言可以是机器语言,也可以是汇编语言,
或者是其他中间语言,但最终结果必是机器语言。

4. 目标程序:由机器指令构成的程序。

目标程序是经过翻译程序加工后用目标语言
表示的程序。

5. 翻译程序:能够把某一种语言程序(源程序)改造成另一种语言程序(目标程序)将
源程序译成逻辑上等价的目标程序的程序。

翻译程序有两种工作方式:编译和解释。

6. 编译程序:也称翻译程序
7. 解释程序:有些翻译程序在翻译过程中并不产生完整的目标程序,而是翻译一句,
解释执行一句,这样的称为解释程序。

8. 汇编程序:由汇编语言写成的程序
9. 词法分析:执行词法分析的程序成为词法分析器,词法分析依据的是语言构词规
则。

词法分析器从文件读入源程序,由字符拼接单词。

每当识别出一个单词,词法分析器就输出这个单词的内部码。

10. 语法分析:执行语法分析的程序叫做语法分析器。

语法分析的任务就是根据语言
的规则,将词法分析器所提供的单词种别分成各类语法范畴。

11. 中间代码生成:中间代码产生有时称为语义分析,执行中间代码产生的程序称为
中间代码生成器。

他的任务时按照语法分析器所识别出的语法范畴产生相应的中间代码,并建立符号表、常数表,等各种表格。

12. 目标代码生成:执行目标代码生成的程序称为目标代码生成器。

他的任务是根据
中间代码和表格信息,确定各类数据在内存中的位置,选择合适的指令代码,将中间代码翻译成汇编语言或机器指令,这部分工作与计算机硬件有关。

13. 符号表:用于记录源程序中出现的标识符,一个标识符往往具有一系列的语义
值,她包括标识符的名称、种属、类型、值存放的地址等等。

14. 常数表:用于记录在源程序中出现的常数。

15. 编译程序前端:是由词法分析器、语法分析器和中间代码产生器组成的。

她的特
点是依赖于被编译的源程序,输出结果用中间代码描述,和目标机器无关。

16. 编译程序后端:是由目标代码生成器组成,他的特点是和源程序无关,以中间代
码形式的源程序为输入进行处理,输出结果依赖于目标机器。

17. 文本文件:文本文件的内容由94个图形字符‘!‘-' ~ '(33-126)和4个
控制字符换行(10)、回车(13)、空格(32)、TAB( 9)构成,文本文件又称为
ASCII码文件,扩展名通常为TXT,文件尾用控制字符EOF( 26)指示。

18. 二进制文件:由机器指令即二进制数构成,因二进制数可能是26 (文件结束控制
符),故文件尾用文件长度(文件的字节数)指示,扩展名通常为EX
E。

19. 源代码(source code)—预处理器(preprocessor) —编译器(compiler) —汇编程序
(assembler)—目标代码(object code)—链接器(Linker) —可执行程序
(executables)
20. 编译程序的流程是:
源程序―》词法分析―》语法分析―》语义分析(中间代码产生)―》目标
代码生成-》目标程序
22•词法分析的各种正规式所代表的含义
(1)a(a|b) * 描述标识符的正规式
(2)bb* 描述无符号整数的正规式
(3) bb*.b* .bb * bb *.b*(E|e)(+|-| £)bb* 描述的是无符号实数的正规式
(4) (叩)(叩厂描述二进制数的正规式
23. 左递归的消除
文法:PP a | B 消除左递归的公式是P B P' P ' a P' | £
24. 提取左因子
文法:P SB 1| SB 2| SB 3|…| SB n提取左因子的公式是
PP P ' B 1| B 2| B 3| …| B n
25. First集和Follow 集规律【E】
First集:(1) aB为&,则E终结符的这种,则b在Fisrt(E)中(2) a在
First (E)中,此时的a 可以是+, -, * , / , . 等(3) a 为&,则First(B)/ &添加到First(E)中
Follow集:(1)文法的开始符号,那么#在Follow (巳中(2)看紧跟在所要求的那个非终结符后面的元素,将first (b) / &添加到Follow (B) (3) 若b为或者文法式为E,贝U Follow ( E)添加到Follow (B)中
26. LL (1)分析表的构造
将非终结符的first集中的符号列下填上相对应的文法规则若将非终结符的first 集中含有&,则在Follow集中的符号列下填上推出 &的文法规则
27. LR( 0)分析表的构造
(1) A rk (K为文法规则的编号)
(2) A 数字m(m为Ij的j)
⑶ S Acc
⑷A sj(j 为Ij的j)
28. SLR分析表的构造
删除非终结符的Follow集中的不存在的那些列中的值
28. 文法分析过程
E-T匚
3.
4,T-FT
5. T 4*FT‘
6.
7,
r %E
)
F-i
之法■捋号扯:理单词
LL⑴分折衣见左图.1K定输入审为i*i#*写析执行过程.
先岗删瀚入申SXttAB is聲土试汨沽隸汨枷治耒呈示分析英
LLI1讨朽法楡化串I英申直広需數点菌草芟青)
o
1
2
3
-
4
5
6
7
8
9
F
"
1
F
F
i
T
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
ff
r
r
K
r
r
F
r
r
r
r
b
J
pr
r
茹「.入

例如:a*b+c
经词法分析,单
(‘ i
'
,” a”),(,” NUL ),(
J c
”),(‘#', ”N UL)
因此单词的种别序列为i*i+i#
29. LR语法分析器的控制程序
词的二元式为
” b”),(‘ + ' , ” NUL ),(
‘ i
step 状态栈符号栈输入串动作
0)0 # i*i+i# 初始
【2】F 【3】i 【4】T*F
【5】T 【6】i
【7】F
【8】E+T
aVbVc
31.设源程序为a b c,经词法分析,他的二元式序列为:(i, ” a”)
(A, ” NUL' )(i, ” b” ) ( A, ” NUI” )(i, ” c”)(#, ” NUL )。

相关文档
最新文档