《编译原理》样卷及答案
编译原理试题及答案

编译原理试题及答案一、选择题1. 编译器的主要功能是什么?A. 程序设计B. 程序翻译C. 程序调试D. 数据处理答案:B2. 下列哪一项不是编译器的前端处理过程?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D3. 在编译原理中,词法分析器的主要作用是什么?A. 识别程序中的关键字和标识符B. 将源代码转换为中间代码C. 检查程序的语法结构D. 确定程序的运行环境答案:A4. 语法分析通常采用哪种方法?A. 自顶向下分析B. 自底向上分析C. 正则表达式匹配D. 直接解释执行答案:B5. 语义分析的主要任务是什么?A. 检查程序的语法结构B. 检查程序的类型安全C. 识别程序中的变量和常量D. 将源代码转换为机器代码答案:B二、简答题1. 简述编译器的工作原理。
答案:编译器的工作原理主要包括以下几个步骤:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。
词法分析器将源代码分解成一系列的词素;语法分析器根据语法规则检查词素序列是否合法;语义分析器检查程序的语义正确性;中间代码生成器将源代码转换为中间代码;代码优化器对中间代码进行优化;最后,目标代码生成器将优化后的中间代码转换为目标机器代码。
2. 什么是词法分析器,它在编译过程中的作用是什么?答案:词法分析器是编译器前端的一个组成部分,负责将源代码分解成一个个的词素(tokens),如关键字、标识符、常量、运算符等。
它在编译过程中的作用是为语法分析器提供输入,是编译过程的基础。
三、论述题1. 论述编译器中的代码优化技术及其重要性。
答案:代码优化是编译过程中的一个重要环节,它旨在提高程序的执行效率,减少资源消耗。
常见的代码优化技术包括:常量折叠、死代码消除、公共子表达式消除、循环不变代码外提、数组边界检查消除等。
代码优化的重要性在于,它可以显著提高程序的运行速度和性能,同时降低程序对内存和处理器资源的需求。
四、计算题1. 给定一个简单的四则运算表达式,请写出其对应的逆波兰表达式。
编译原理期末考试试卷及答案

一. 填空题(每空2分,共20分)1. 不同的编译程序关于数据空间的存储分配策略可能不同,但大部分编译中采用的方案有两种:静态存储分配方案和动态存储分配方案,而后者又分为(1) 和 (2) 。
2. 规范规约是最(3)规约。
3. 编译程序的工作过程一般划分为5个阶段:词法分析、(4) 、语义分析与中间代码生成,代码优化及(5) 。
另外还有(6)和出错处理。
4.表达式x+y*z/(a+b)的后缀式为 (7) 。
5.文法符号的属性有综合属性和 (8)。
6.假设二位数组按行存放,而且每个元素占用一个存储单元,则数组a[1..15,1..20]某个元素a[i ,j]的地址计算公式为(9)。
7.局部优化是局限于一个(10)范围内的一种优化。
二. 选择题(1-6为单选题,7-8为多选题,每问2分,共20分)1. 一个上下文无关文法G 包括四个组成部分:一组终结符,一组非终结符,一个( ),以及一组( )。
A . 字符串B . 产生式C . 开始符号D . 文法 2.程序的基本块是指( )。
A . 一个子程序B . 一个仅有一个入口和一个出口的语句C . 一个没有嵌套的程序段D . 一组顺序执行的程序段,仅有一个入口和一个出口 3. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于( )分析方法。
A . 自左向右 B . 自顶向下 C . 自底向上 D . 自右向左 4.在通常的语法分析方法中,( )特别适用于表达式的分析。
A . 算符优先分析法 B . LR 分析法 C . 递归下降分析法 D . LL (1)分析法 5.经过编译所得到的目标程序是( )。
A . 四元式序列B . 间接三元式序列C . 二元式序列D . 机器语言程序或汇编语言程序 6. 一个文法所描述的语言是( );描述一个语言的文法是( )。
A . 唯一的 B . 不唯一的 C . 可能唯一,也可能不唯一7.如果在文法G中存在一个句子,当其满足下列条件()之一时,则称该文法是二义文法。
编译原理试题及答案

编译原理试题及答案
试题:
1. 解释编译原理的定义,同时给出编译器的作用。
2. 简要描述编译过程中的四个基本步骤。
3. 解释词法分析器的功能和作用。
4. 解释语法分析器的功能和作用。
答案:
1. 编译原理是研究如何将高级语言程序转化为等价机器语言程序的一门学科。
编译器是将高级语言文本转换成等价的机器语言的软件工具。
它负责将源代码转化为目标代码,以便计算机能够理解和执行。
2. (1) 词法分析:将源代码分解成一系列单词或标记。
(2) 语法分析:根据语法规则组织单词或标记形成语法树。
(3) 语义分析:分析语法树以检测语义错误。
(4) 代码生成:根据语法树生成目标代码。
3. 词法分析器的功能是将源代码分解成一系列单词或标记。
它将源代码读取为字符流,然后将这些字符组成单词,同时可以去除空格、注释等不具有实际意义的内容。
词法分析器的作用是为语法分析器提供正确的单词序列,为后续的语义分析和代
码生成步骤建立基础。
4. 语法分析器的功能是根据语法规则组织单词或标记形成语法树。
它通过构建语法树来分析源代码的语法结构,同时可以检测语法错误。
语法分析器的作用是为后续的语义分析和代码生成步骤提供一个结构化的表示形式,便于后续的处理和转换。
完整word版编译原理考试试题及答案

完整word版编译原理考试试题及答案《编译原理》考试试题及答案(附录)一、判断题:1.一个上下文无关文法的开始符,可以是终结符或非终结符。
( X )2.一个句型的直接短语是唯一的。
( X )3.已经证明文法的二义性是可判定的。
( X )4.每个基本块可用一个DAG表示。
(√)5.每个过程的活动记录的体积在编译时可静态确定。
(√)6.2型文法一定是3型文法。
( x )7.一个句型一定句子。
( X )8.算符优先分析法每次都是对句柄进行归约。
(应是最左素短语) ( X )9.采用三元式实现三地址代码时,不利于对中间代码进行优化。
(√)10.编译过程中,语法分析器的任务是分析单词是怎样构成的。
( x )11.一个优先表一定存在相应的优先函数。
( x )12.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
( )13.递归下降分析法是一种自下而上分析法。
( )14.并不是每个文法都能改写成LL(1)文法。
( )15.每个基本块只有一个入口和一个出口。
( )16.一个LL(1)文法一定是无二义的。
( )17.逆波兰法表示的表达试亦称前缀式。
( )18.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
( )19.正规文法产生的语言都可以用上下文无关文法来描述。
( )20.一个优先表一定存在相应的优先函数。
( )21.3型文法一定是2型文法。
( )22.如果一个文法存在某个句子对应两棵不同的语法树,则文法是二义性的。
( )二、填空题:1.( 最右推导 )称为规范推导。
2.编译过程可分为(词法分析),(语法分析),(语义分析和中间代码生成),(代码优化)和(目标代码生成)五个阶段。
3.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是()。
4.从功能上说,程序语言的语句大体可分为()语句和()语句两大类。
5.语法分析器的输入是(),其输出是()。
6.扫描器的任务是从()中识别出一个个()。
《编译原理》历年试题及答案

<编译原理>历年试题及答案一.(每项选择2分,共20分)选择题1.将编译程序分成若干个“遍”是为了___。
a.提高程序的执行效率b.使程序的结构更加清晰c.利用有限的机器内存并提高机器的执行效率d.利用有限的机器内存但降低了机器的执行效率2.构造编译程序应掌握____。
a.源程序b.目标语言c.编译方法d.以上三项都是3.变量应当_。
a.持有左值b.持有右值c.既持有左值又持有右值d.既不持有左值也不持有右值4.编译程序绝大多数时间花在____上。
a.出错处理b.词法分析c.目标代码生成d.管理表格5.词法分析器的输出结果是____。
a.单词的种别编码b.单词在符号表中的位置c.单词的种别编码和自身值d.单词自身值6.正规式MI和M2等价是指____。
a. MI和M2的状态数相等b.Ml和M2的有向弧条数相等。
C.M1和M2所识别的语言集相等 d. Ml和M2状态数和有向弧条数相等7.中间代码生成时所依据的是—。
a.语法规则 b.词法规则 c.语义规则 d.等价变换规则8.后缀式ab+cd+/可用表达式___来表示。
a.a+b/c+d b.(a+b)/(c+d) c.a+b/(c+d) d.a+b+c/d9.程序所需的数据空间在程序运行前就可确定,称为______管理技术。
a.动态存储b.栈式存储c.静态存储d.堆式存储10.堆式动态分配申请和释放存储空间遵守________原则。
a.先请先放b.先请后放c.后请先放d.任意二(每小题10分,共80分)简答题1.画出编译程序的总体结构图,简述各部分的主要功能。
2. 已知文法G[E]:E→ET+|T T→TF* | F F→F^ | a试证:FF^^*是文法的句型,指出该句型的短语、简单短语和句柄.3.为正规式(a|b) *a(a|b)构造一个确定的有限自动机。
4.设文法G(S):S→(L)|a S|aL→L,S|S(1) 消除左递归和回溯;(2) 计算每个非终结符的FIRST和FOLLOW;(3) 构造预测分析表。
编译原理试题及答案

编译原理试题及答案一、选择题1. 下列哪个不是编译器所需的基本处理步骤?A. 词法分析B. 语法分析C. 语义分析D. 目标代码优化答案:D2. 编译器的主要功能是将高级语言程序翻译成什么形式?A. 汇编语言B. 机器语言C. 中间代码D. 高级语言答案:B3. 下列哪个不属于编译器的后端阶段?A. 代码优化B. 目标代码生成C. 词法分析D. 目标程序优化答案:C二、填空题1. 编译器的输入是源程序,输出是目标程序。
2. 目标代码生成阶段的任务是将中间代码翻译成汇编语言或机器语言。
3. 语法分析阶段的输出是抽象语法树。
三、简答题1. 请简述编译器的工作原理。
编译器的工作原理主要包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等阶段。
词法分析阶段将源程序分解成单词(也称为词法单元),语法分析阶段根据语法规则将词法单元组织成一个语法树,语义分析阶段对语法树进行语义检查,中间代码生成阶段将语法树转化为中间代码,代码优化阶段对中间代码进行优化,最后目标代码生成阶段将中间代码转化为机器语言或汇编语言。
2. 请说明词法分析的作用是什么,如何实现?词法分析的作用是将源程序中的字符序列转化为单词序列,也就是将一段代码切分成不同的词法单元。
实现词法分析可以通过有限状态自动机来处理输入字符序列,并根据一系列规则将字符序列划分为词法单元。
常用的方法有手写分析器和使用词法分析生成器等。
3. 简要介绍一下代码优化的目的和方法。
代码优化的目的是通过对程序的中间代码或目标代码进行调整,以达到提高程序性能、减小程序的空间占用或减小程序的执行时间等目的。
代码优化的方法主要包括局部优化和全局优化两种。
局部优化主要针对某个代码块进行优化,如常量折叠、公共子表达式消除等。
全局优化则考虑整个程序,对程序的整体结构进行优化,如循环优化、函数内联等。
总结:编译原理试题及答案主要涵盖了选择题、填空题和简答题三个部分。
其中选择题主要考察对编译器基本处理步骤和功能的理解。
编译原理考试题及答案
编译原理考试题及答案一、选择题(每题5分,共20分)1. 编译器的主要功能是什么?A. 代码优化B. 代码翻译C. 代码调试D. 代码运行答案:B2. 下列哪个选项不属于编译器的前端部分?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D3. 在编译原理中,文法的产生式通常表示为:A. A -> αB. A -> βC. A -> γD. A -> δ答案:A4. 下列哪个算法用于构建语法分析树?A. LL(1)分析B. LR(1)分析C. SLR(1)分析D. LALR(1)分析答案:A二、填空题(每空5分,共20分)1. 编译器的前端通常包括词法分析、语法分析和________。
答案:语义分析2. 编译器的后端主要负责________和目标代码生成。
答案:代码优化3. 编译器中的词法分析器通常使用________算法来识别单词。
答案:有限自动机4. 语法分析中,________分析是一种自顶向下的分析方法。
答案:递归下降三、简答题(每题10分,共30分)1. 简述编译器的作用。
答案:编译器的主要作用是将高级语言编写的源代码转换成计算机能够理解的低级语言或机器代码,以便执行。
2. 解释一下什么是语法制导翻译。
答案:语法制导翻译是一种翻译技术,它利用源语言的语法信息来指导翻译过程,使得翻译过程能够更好地理解源代码的语义。
3. 什么是词法分析器?答案:词法分析器是编译器前端的一部分,它的任务是将源代码文本分解成一系列的标记(tokens),这些标记是源代码的最小有意义的单位。
四、计算题(每题10分,共30分)1. 给定一个简单的文法G(E):E → E + T | TT → T * F | FF → (E) | id请计算文法的非终结符号E的FIRST集和FOLLOW集。
答案:E的FIRST集为{(, id},FOLLOW集为{), +, $}。
2. 假设编译器在进行语法分析时,遇到一个语法错误的代码片段,请简述编译器如何处理这种情况。
编译原理考试及答案
编译原理考试及答案一、选择题(每题2分,共20分)1. 编译器的主要功能是将源代码翻译成目标代码,以下哪个选项不属于编译器的主要功能?A. 词法分析B. 语法分析C. 语义分析D. 代码优化答案:D2. 在编译原理中,BNF(巴科斯-诺尔范式)是一种用于描述哪种结构的记号?A. 语法结构B. 词法结构C. 语义结构D. 控制结构答案:A3. 编译过程中的哪个阶段负责检查变量是否被正确声明?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:C4. 下列哪个选项不是编译器前端处理的一部分?A. 预处理B. 词法分析C. 语法分析D. 目标代码生成答案:D5. 在编译原理中,自底向上的解析方法通常指的是哪种分析方法?A. LL(1)分析B. LR(1)分析C. LALR(1)分析D. SLR(1)分析答案:B6. 编译器中的语义分析阶段主要负责什么?A. 识别标识符B. 检查语法结构C. 构建抽象语法树D. 生成中间代码答案:C7. 编译器中的错误恢复机制主要在哪个阶段进行?A. 词法分析B. 语法分析C. 语义分析D. 代码优化答案:B8. 编译器中的代码优化通常发生在哪个阶段?A. 语义分析B. 中间代码生成C. 目标代码生成D. 机器无关代码优化答案:D9. 在编译原理中,哪些技术用于处理左递归?A. 直接左递归消除B. 间接左递归消除C. 直接和间接左递归消除D. 只有直接左递归消除答案:C10. 编译器中的哪些技术用于处理冲突?A. 预测分析表B. 状态转换图C. 优先级规则D. 所有选项答案:D二、填空题(每题2分,共20分)1. 编译器的前端主要负责源程序的______和______。
答案:词法分析;语法分析2. 编译器的后端主要负责______和______。
答案:代码优化;目标代码生成3. 在编译原理中,一个文法的产生式规则形式为:A → α,其中A是非终结符,α是终结符和非终结符的有限序列,这种产生式规则被称为______产生式。
编译原理试题及答案
编译原理试题及答案一、选择题1. 编译器的主要功能是什么?A. 将高级语言代码翻译成机器语言代码B. 进行程序调试C. 进行代码优化D. 管理程序运行时的内存分配答案:A2. 词法分析器的主要任务是什么?A. 将源代码分解成多个语句B. 将源代码分解成多个词素C. 检查源代码的语法正确性D. 将词素转换为相应的语法单位答案:B3. 下列哪个是自顶向下的语法分析方法?A. LL(1)分析法B. LR(1)分析法C. LALR(1)分析法D. GLR分析法答案:A4. 语义分析的主要任务是什么?A. 检查程序的语法正确性B. 检查程序的类型正确性C. 将源代码转换为目标代码D. 进行程序的优化答案:B5. 代码生成阶段的主要任务是什么?A. 将语法树转换为目标代码B. 进行程序的优化C. 检查程序的类型正确性D. 将源代码分解成多个词素答案:A二、简答题1. 简述编译过程的主要阶段。
答案:编译过程主要分为四个阶段:词法分析、语法分析、语义分析和代码生成。
词法分析将源代码分解成词素,语法分析检查源代码的语法结构,语义分析检查源代码的语义正确性,代码生成将源代码转换为目标代码。
2. 什么是中间代码?它在编译过程中起到什么作用?答案:中间代码是一种介于源代码和目标代码之间的代码形式,它通常具有更接近于机器语言的特性,但仍然保持一定的抽象级别。
中间代码在编译过程中起到桥梁的作用,它使得代码优化和目标代码生成更加方便和高效。
三、论述题1. 论述编译器优化的几种常见方法。
答案:编译器优化主要包括以下几种方法:常量折叠、死代码消除、公共子表达式消除、循环优化、代码内联、寄存器分配等。
这些优化方法可以提高程序的执行效率,减少资源消耗,提高程序的运行速度。
结束语:本试题涵盖了编译原理的基本知识点,包括编译器的功能、编译过程的主要阶段、中间代码的作用以及编译器优化的方法。
希望考生能够通过本试题加深对编译原理的理解和掌握。
编译原理期末试题及答案
编译原理期末试题及答案一、选择题(每题2分,共20分)1. 编译器的主要功能是将()代码转换成()代码。
A. 高级语言,低级语言B. 高级语言,机器语言C. 汇编语言,机器语言D. 机器语言,汇编语言答案:B2. 编译过程中,词法分析的输出是()。
A. 语法树B. 语法分析表C. 词法单元D. 抽象语法树答案:C3. 在编译原理中,语法分析通常采用()方法。
A. 递归下降分析B. 动态规划C. 贪心算法D. 回溯算法答案:A4. 语义分析的主要任务是()。
A. 检查语法错误B. 生成中间代码C. 检查语义错误D. 优化代码答案:C5. 编译器的优化通常发生在()阶段。
A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D6. 编译器的前端主要负责()。
A. 代码生成B. 代码优化C. 语法分析D. 目标代码生成答案:C7. 编译器的后端主要负责()。
A. 代码生成B. 代码优化C. 语法分析D. 词法分析答案:A8. 编译原理中,LL(1)分析方法的特点是()。
A. 左到右,最右推导B. 左到右,最左推导C. 右到左,最右推导D. 右到左,最左推导答案:B9. 编译原理中,LR(1)分析方法的特点是()。
A. 左到右,最右推导B. 左到右,最左推导C. 右到左,最右推导D. 右到左,最左推导答案:B10. 编译原理中,语法制导翻译的主要思想是()。
A. 根据语法树的结构进行翻译B. 根据词法单元进行翻译C. 根据语法分析表进行翻译D. 根据语义分析表进行翻译答案:A二、填空题(每题2分,共20分)1. 编译器中,用于表示语法规则的产生式通常由非终结符、产生符号和()组成。
答案:产生式右侧2. 在编译原理中,一个文法是()的,如果它的任何两个产生式都不会导致相同的句柄。
答案:无二义性3. 编译器的词法分析阶段通常使用()算法来识别和分类词法单元。
答案:有限自动机4. 语法分析阶段,如果一个文法是左递归的,编译器需要使用()技术来消除左递归。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、简答题(每题4分,共24分)1、构造一个文法G,使得:L(G)={(m )m|m>0}解答:G[S]: s-> ()|(S)2、构造一个正规式,它接受 ={0,1}上符合以下规则的字符串:串内有且只有2个1的0、1字符串全体。
解答:0*10*10*3、消除文法G[S]中的直接左递归和回溯S→(L) | aS | aL→L,S | S解答:S→(L) | aS'S'→S | εL→S L'L'→,S L' | ε4、文法G[S]是乔姆斯基几型文法?S → ABS | ABAB → BAA → 0B → 1解答:1型文法/上下文有关文法5、按Thmopson算法构造与正则表达式(1*|0) * 等价的NFA。
解答:略6、设计一个状态转换图,其描述的语言规则为:如果以a开头,则其后是由a、b组成的任意符号串;如果以b开头,则其后是至少包含一个a的由a、b组成的任意符号串。
解答:略二、(本题10分)对于文法G[E]:E→ET+|TT→TF* | FF→F^ | a(1) 给出句子FF^^*的最左推导和语法树;(2) 给出句子FF^^*的短语、直接短语和句柄。
解答: (1) 2分:句子FF^^*的最左推导 2分:句子FF^^*的语法树E=>T=>TF*=>FF*=>FF^*=>FF^^*(2) 3分:句子FF^^*的短语FF^^*、FF^^*、F、F^、F^^2分:句子FF^^*的直接短语F、F^1分:句子FF^^*的句柄F三、(本题15分)构造与下列NFA等价的最小化DFA。
解答:(1)10分:构造与NFA等价的DFA(2)5分:对DFA最小化首先,将所有的状态集合分成子集: k1={0,1,2,4} k2={3,5}四、(本题15分)对下列文法G[S]:s→ eT | RTT→ DR | εR→ dR | εD→ a | bd(1) 写出文法G[S]每个非终结符的FIRST集和FOLLOW集;(2) 判断文法G[S]是否LL(1)文法(注:必须给出判断过程,否则不得分);(3) 写出文法文法G[S]的预测分析表。
解答:(1)8分:每个First集合和FOLLOW集合各1分(2)2分:判断文法G[S]是LL(1)文法。
对于产生式s→ eT | RT:FIRST(eT)∩FIRST(RT)-ε={e}∩{a,b,d}=ΦFIRST(eT)∩FOLLOW(S)={e}∩{#}=Φ对于产生式T→ DR | ε:FIRST(DR)∩FOLLOW(T)={a,b}∩{#}=Φ`对于产生式R→ dR | ε:FIRST(dR)∩FOLLOW(R)={d}∩{a,b,#}=Φ对于产生式D→ a | bd:FIRST(a)∩FIRST(bd)={a}∩{b}=Φ所以,对于文法G[S]是LL(1)文法。
(3) 5分:文法G[S]的预测分析表。
五、(本题18分)已知文法G[S]:S → r DD → D ,i | i(1) 画出识别文法活前缀的完整DFA,并判断该文法是否LR(0)文法(必须说明判断依据);(2) 构造该文法的SLR(1)分析表,并判断该文法是否SLR(1)文法(必须说明判断依据)。
解答:(1) 8分:画出识别文法活前缀的完整DFA文法拓展并对产生式编号:(0)S' →S(1)S → r D (2)D → D ,i (3)D → i(2) 2分:判断该文法不是LR(0)文法对于状态3,项目集中存在“移进-规约”冲突,所以该文法不是LR(0)文法。
(3) 6分:构造该文法的SLR(1)分析表(4) 2分:判断文法是SLR(1)分析表回答1:因为SLR(1)分析表不存在冲突,所以文法是SLR(1)分析表。
回答2:对于状态3, FOLLOW(S)∩{,}=(#)∩{,}=Ф,“移进-规约”冲突可以用 SLR(1)方法解决,所以文法是SLR(1)分析表。
六、(本题8分)文法G[E]的LR分析表如下图所示:(1) E→E+T (2) E→T (3) T→T*F(4) T→F (5) F→(E) (6) F→i写出对输入串i * i + i的LR分析过程 (即状态,符号,输入串的变化过程)。
解答:七、(本题10分)写出下列语句的四元式序列if(y>z && (c<d || m>n))while(a>b)x=x+y*a;elsem=m+n;解答:1 (j>, y, z, 3)2 (j , -,-, 13)3 (j<,c,d, 7)4 (j,-,-, 5)5 (j>,m,n, 7)6 (j,-,-, 13)7 (j>,a,b, 9)8 (j,-,-,13/16)9 (*,y,a,t0)10 (+,x,t0,t1)11 (=,t1,-,x)12 (j,-,-, 7)13 (j,-,-, 16)14 (-,x,1,t5)15 (=,t5,-,x)16 ..........华中师范大学网络教育学院《编译原理》练习测试题库一、填空1.若源程序是用高级语言编写的,目标程序是______,则其翻译程序称为编译程序。
2.词法分析和语法分析本质上都是对源程序的______进行分析。
3.如果源语言(编写源程序的语言)是高级语言,而目标语言是某计算机的汇编语言或机器语言,则这种翻译程序称为_____。
4.对编译程序而言,输入数据是_______,输出结果是________。
5. ______,是构成语言文法的单词,是语法成分的最小单位。
6.由PL/0的EBNF可知,PL/0语言可看成是PASCAL语言的子集,它的编译程序是一个__________。
7.由于PL/0编译程序采用_________,所以语法分析过程BLOCK是整个编译过程的核心。
8.用语法图描述语法规则的优点是______、________。
9.每个非终结符是一个语法成分,在书写语言程序时并不出现,它是由_________和_________、或终结符串定义的。
10.PL/0的目标程序为假想栈式计算机的汇编语言,与具体计算机______。
11.PL/0的编译程序和目标程序的解释执行程序都是用_______书写的,因此PL/0语言可在配备_________的任何机器上实现。
12.PL/0编译程序是用PASCAL语言书写的,整个编译程序(包括主程序)是由______个嵌套及并列的过程或函数组成13.当源程序编译正确时,PL/0编译程序自动调用__________,对目标代码进行解释执行,并按用户程序要求输入数据和输出运行结果。
14.由于对某些非终结符可以递归定义,这就使得_________可用有穷的文法描述。
15. ______的任务是识别由词法分析给出的单词符号序列在结构上是否符合给定的文法规则。
16. PL/0编译程序的语法分析采用了____________。
17.语法分析程序除总控外主要有两大部分的功能,即_________和__________.18.PL/0的词法分析程序GETSYM,是一个独立的过程,其功能是为_________提供单词用的,是______的基础,它把输入的字符串形式的源程序分割成一个个单词符号。
19.每个过程应有过程首部以定义局部于它自己过程的常量、变量和过程标识符,也称_____。
20.词法分析程序GETSYM将完成的任务有:______, 识别保留字;_______,拼数,拼复合词,输出源程序.21.如果一个PL/0语言的单词序列在整个语法分析中,都能逐个得到匹配,直到_________,这时就说所输入的程序是正确的。
22.若要构造程序设计语言的编译程序,则首先要对程序设计语言本身有较为精确的描述。
而关于程序设计语言的描述,将涉及_____、语义和______三个方面。
23.凡是具有某种特殊性质的客体的聚合,都可称为______。
24.如果集合中元素个数为零,即集合中不含有任何元素,这样的集合称为_______,记为φ。
25.设有集合A和B,如果A和B有相同的元素,则称这两个集合是_______.26.设A、B为任意两个集合,由所有属于集合A或属于集合B的元素组成的集合,叫做集合A与B的_______.27. 设A、B为任意两个集合,由所有用于集合A且属于集合B的元素组成的集合,称为集合A与B的_______.28. 如果一个集合,它能包含我们所要考虑目标之内的所有元素,则称此集合为_____,记为E。
29.设A为一集合,由A的所有子集(包括空集及A本身)所组成的集合,称为A的______.30. 由两个按一定次序排列的客体组成的序列,称为_____.31. 设A和B为任意两个集合,若序偶的第一个成员是集合A的一个元素,第二个成员是集合B的一个元素,则所有这样的序偶组成的集合称为集合A和B的__________.32.在集合X上的关系R,如对任意x∈X,均有(x,x) ∈R,则称关系R是______。
33.在集合X上的关系R,如果合(x,y) ∈R,便必有(y,x) ∈R,则称关系R是________。
34.在集合X上的关系R,如果合(x,y) ∈R且(y,z) ∈R,必有(x,z) ∈R,则称关系R 是______。
35.例设 P={(1,2),(3,4),(2,2)} Q={(4,7),(2,9),(3,1)}则P·Q=____________________________36.符号串与符号组成顺序______,如符号串ab______ba,符号申001也______010。
37.假设G是一个文法,S是文法的开始符号,如果S=>*x,则称x是________。
38. 文法G产生的_______的全体是该文法描述的语言。
39.一个文法G[Z]若存在推导序列Z=>+···Z···,则称G(z)→u中的左部符号U(U不是识别符号),不在所属文法的任何其他规则右部出现,那么这条规则在推导中不起作用,即所有句子的推导始终不会用到此规则,显然这种规则是多余的。
也称这种非终结符为_________.55.从文法的某个非终结符号U推不出终结符号串,显然,所有含有U的规则是多余的。
也称这种非终结符为________。
56.若L是上下文有关语言、上下文无关语言或正规语言,则L∪{ε}和L - {ε}分别是上下文有关语言、_____和正规语言。
57.设有文法G,对于其中某一非终结符号U可能作出一些不同推导U =>+ Sx,其中S叫头符号,由于推导不同,由U产生的头符号S也可能不同,这些头符号S构成的集合,称为U 的推导的__________.58.一个上下文无关文法G包括四个组成部分依次是:_____,______,_______,_______.1159.文法所描述的语言是_______的集合。