编译原理复习题及答案
编译原理试题及答案

编译原理试题及答案一、选择题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. 给定一个简单的四则运算表达式,请写出其对应的逆波兰表达式。
编译原理复习题答案

8
# Expr
id((id)) #
9
# ExprTail Var
id((id)) #
Expr →Var ExprTail
10 # ExprTail VarTail id
id((id)) #
Var→id VarTail
11 # ExprTail VarTail
((id)) #
12 # ExprTail )Expr(
(要求:先将正规式转化为 NFA,再将 NFA确定化,最小化) 答案: ( 一) 相应的正规式为 (a|b)*ab(a|b)* ( 二) ①与此正规式对应的 NFA为
②状态转换矩阵为:
③ 最小化:
{0 ,1,2} {3 ,4,5}
{0 , 2} ,1, {3 ,4, 5}
b
a
a
a
b
0
1
3
b
④所以此等价的 DFA为:开始状态为 0 ,终态集为 {3} ,状态集为 {0,1,3} ,
2、证明下面文法是 SLR(1)但不是 LR(0) 的。
S→ A
A→ Ab|bBa
B→ aAc|a|aAb
解:文法 G[S] : 0: S→A 1:A→Ab 2:A→bBa 3:B→aAc 4:B→a 5:B→aAb
构造 LR(0) 项目集规范族:
状态 项目集
转换函数
0
S→·A
GO[0,A] =1
答案:文法 G(S):S → AC A→ aaAbb/ab C→ ccCcc/cc
四、词法分析题
1、构造下面正规式相应的 DFA
*
**
((0|1) |(11) )
(要求:先将正规式转化为 NFA,再将 NFA确定化,最小化)
最新编译原理复习题及答案

编译原理复习题及答案一、选择题1.一个正规语言只能对应(B)A 一个正规文法B 一个最小有限状态自动机2.文法G[A]:A→εA→aB B→Ab B→a是(A)A 正规文法B 二型文法3.下面说法正确的是(A)A 一个SLR(1)文法一定也是LALR(1)文法B 一个LR(1)文法一定也是LALR(1)文法4.一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL(1)文法的(A)A 必要条件B 充分必要条件5.下面说法正确的是(B)A 一个正规式只能对应一个确定的有限状态自动机B 一个正规语言可能对应多个正规文法6.算符优先分析与规范归约相比的优点是(A)A 归约速度快B 对文法限制少7.一个LR(1)文法合并同心集后若不是LALR(1)文法(B)A 则可能存在移进/归约冲突B 则可能存在归约/归约冲突C 则可能存在移进/归约冲突和归约/归约冲突8.下面说法正确的是(A)A Lex是一个词法分析器的生成器B Yacc是一个语法分析器9.下面说法正确的是(A)A 一个正规文法也一定是二型文法B 一个二型文法也一定能有一个等价的正规文法10.编译原理是对(C)。
A、机器语言的执行B、汇编语言的翻译C、高级语言的翻译D、高级语言程序的解释执行11.用高级语言编写的程序经编译后产生的程序叫(B)A.源程序 B.目标程序C.连接程序D.解释程序12.(C)不是编译程序的组成部分。
A.词法分析程序B.代码生成程序C.设备管理程序D.语法分析程序13.通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成等六个部分,还应包括(C)。
A.模拟执行器B.解释器 C.表格处理和出错处理D.符号执行器14.源程序是句子的集合,(B)可以较好地反映句子的结构。
A. 线性表B. 树C. 完全图D. 堆栈15.词法分析器的输出结果是(D)。
A、单词自身值B、单词在符号表中的位置C、单词的种别编码D、单词的种别编码和自身值16.词法分析器不能(D)A. 识别出数值常量B. 过滤源程序中的注释C. 扫描源程序并识别记号D. 发现括号不匹配17.文法:G:S→xSx | y所识别的语言是(D)。
编译原理复习题有答案

编译原理复习题有答案编译原理复习题及答案一、选择题1. 编译器的主要功能是什么?A. 代码格式化B. 代码优化C. 将源代码转换为机器码D. 错误检测和修复答案:C2. 词法分析阶段的主要任务是什么?A. 语法分析B. 语义分析C. 识别源程序中的词法单元D. 代码生成答案:C3. 下列哪个不是编译原理中的常见数据结构?A. 栈B. 队列C. 哈希表D. 链表答案:D4. 语法分析通常采用哪种方法?A. 递归下降分析B. 动态规划C. 贪心算法D. 深度优先搜索答案:A5. 代码优化的目的是什么?A. 增加程序长度B. 减少程序运行时间C. 提高程序的可读性D. 增加程序的复杂性答案:B二、简答题1. 简述编译过程的主要阶段。
答案:编译过程主要分为四个阶段:词法分析、语法分析、语义分析和代码生成。
词法分析负责将源代码分解成词法单元;语法分析构建语法树,检查源代码的语法结构;语义分析检查程序的语义正确性;代码生成将源代码转换成目标代码或机器码。
2. 什么是自底向上的语法分析方法?答案:自底向上的语法分析方法是一种从叶子节点开始,逐步向上构建语法树的方法。
它通常使用移进-归约分析技术,通过将输入符号与栈顶符号进行匹配,不断地将它们归约成非终结符,直到整个输入被归约为起始符号。
3. 请解释什么是中间代码,并说明其作用。
答案:中间代码是一种介于源代码和目标代码之间的代码形式,通常用于代码优化和目标代码生成。
它具有高级语言的可读性,同时又能表达程序的控制流和数据流信息。
中间代码使得编译器可以在不同的阶段对程序进行优化,提高程序的执行效率。
三、论述题1. 论述编译原理中的错误处理机制。
答案:编译原理中的错误处理机制主要包括错误检测、错误恢复和错误报告。
错误检测是指在编译过程中识别出源代码中的语法或语义错误;错误恢复是指在检测到错误后,编译器采取的措施以继续编译过程,避免因单个错误而中断整个编译;错误报告则是向程序员提供错误信息,帮助其定位和修复错误。
完整版编译原理复习题及答案

编译原理复习题及答案一、选择题1.一个正规语言只能对应( B )A 一个正规文法B 一个最小有限状态自动机2.文法G[A] :A→εA→aB B→Ab B→a是( A )A 正规文法B 二型文法3.下面说法正确的是( A ) A一个SLR(1)文法一定也是LALR (1)文法B一个LR (1)文法一定也是LALR (1)文法4.一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL (1)文法的( A )A 必要条件B 充分必要条件5.下面说法正确的是( B )A 一个正规式只能对应一个确定的有限状态自动机B 一个正规语言可能对应多个正规文法6.算符优先分析与规范归约相比的优点是( A )A 归约速度快B 对文法限制少7.一个LR (1)文法合并同心集后若不是LALR (1)文法( B )A 则可能存在移进/归约冲突B 则可能存在归约/归约冲突C 则可能存在移进/归约冲突和归约/ 归约冲突8.下面说法正确的是( A )A Lex 是一个词法分析器的生成器B Yacc 是一个语法分析器9.下面说法正确的是( A )A一个正规文法也一定是二型文法B一个二型文法也一定能有一个等价的正规文法10.编译原理是对(C) 。
A 、机器语言的执行B、汇编语言的翻译C、高级语言的翻译D、高级语言程序的解释执行11.(A) 是一种典型的解释型语言。
A .BASICB .CC.FORTRAN D.PASCAL12.把汇编语言程序翻译成机器可执行的目标程序的工作是由(B) 完成的。
A. 编译器B. 汇编器C. 解释器D. 预处理器13.用高级语言编写的程序经编译后产生的程序叫(B) A .源程序B .目标程序C.连接程序 D .解释程序14.(C) 不是编译程序的组成部分。
A. 词法分析程序B. 代码生成程序C.设备管理程序D. 语法分析程序15.通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优目标代码生成等六个部分,还应包括(C)A .模拟执行器B .解释器C.表格处理和出错处理D .符号执行器16.编译程序绝大多数时间花在(D) A .出错处理B.词法分析C.目标代码生成D.表格管理17.源程序是句子的集A. 线性表(B) 可以较好地反映句子的结构。
编译原理复习题

编译原理(一)一、是非题1、算符优先关系表不一定存在对应的优先函。
………………………………………()2、数组元素的地址计算与数组的存储方式有关。
……………………………()3、仅考虑一个基本块,不能确定一个赋值是否真是无用的。
…………………………()4、每个文法都能改写为LL(1)文法。
……………………………………………()5、对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。
………………()二、填空题1、从功能上说,程序语言的语句大体可分为()语句和()语句两大类。
2、扫描器的任务是从()中识别出一个个()。
3、所谓最右推导是指:()。
4、语法分析最常用的两类方法是()和()分析法。
5、一个上下文无关文法所含四个组成部分是()。
6、所谓语法制导翻译方法是()。
7、符号表中的信息栏中登记了每个名字的有关的性质,如()等等。
8、一个过程相应的DISPLA Y表的内容为()。
9、常用的两种动态存贮分配办法是()动态分配和()动态分配。
10、产生式是用于定义()的一种书写规则。
三、名词解释1、遍--2、无环路有向图(DAG)--3、语法分析--4、短语--5、后缀式--四、简述题1、考虑下面程序…………V ar a:integer;Procedure S(X);V ar X:integer;Begina:=a+1;X:=a+XEnd;Begina:=5;S(a);Print(a)End.试问:若参数传递方式分别采取传名和传值时,程序执行后输出a的值是什么?2、画出Pascal中实数(不带正负号,可带指数部分)的状态转换图。
3、写出表达式(a+b*c)/(a+b)-d的逆波兰表示及三元式序列。
4、已知文法G(S)S→a|∧|(T)T→T,S|S写出句子((a,a),a)的规范归约过程及每一步的句柄。
5、何谓优化?按所涉及的程序范围可分为哪几级优化?6、目标代码有哪几种形式?生成目标代码时通常应考虑哪几个问题?五、计算题1、写一个文法,使其语言是奇数集,且每个奇数不以0开头。
编译原理复习题一(含答案)

一、单选题(每题2分,共20分)1. 编译器的()阶段可将源程序的字符流收集到若干记号中。
A. 语法分析B. 语义分析C. 代码生成D. 词法分析2. 文法A aA | b属于正则文法,正则文法在乔姆斯基层次中对应于()文法。
A. 1型B. 2型C. 3型D. 0型3. 某C语言源代码文件包含#include <stdio.h>,()将对源代码进行处理,把文件stdio.h 包含进去。
A.编译器B.解释器C.汇编器D.预处理器4. LL(1)文法的充要条件是()。
A.对于文法中的每条产生式Uα1|α2|…|αn,要求FIRST(αi)∩FIRST(αj)=Φ(i≠j)B.该文法对应的LL(1)分析表中每个项目最多只有一条产生式。
C.A和BD.都不是5. 以下说法中正确的是()。
A.任何语言都可以描述为一个正则表达式。
B.对于任何一个NFA M,都存在一个DFA M’,满足L(M)= L(M’)。
C.任何一个DFA只有一个终态。
D.NFA的弧上标记只含输入字母表中的元素。
6.合成属性的计算可以通过对语法树进行()遍历进行。
A. 前序B.中序C.后序D.任意7.乔姆斯基的2型文法是这样一种语言,其产生式限制为()。
A. α->βB. P->βC. P->a或P->aβD. αPγ->αβγ8. 正则式的“*”读作()。
A. 并且B.连接C.正则闭包D.闭包9. 编译程序中的语义分析器接受以()为单位的输入,并产生信息供以后各阶段使用。
A. 语法树B.子程序C.单词D.语句10.文法A->aAb|ab生成的语言是()。
A. {ab}B.{aAb}C. {anbn|n≥1}D.{anbn|n≥0}二、判断题(每题2分,共10分,对的打√,错的打×)1. 一个LR(0)文法一定是SLR(1)文法。
()2. 在类型声明文法中,类型属性type是继承属性。
编译原理考试题及答案

编译原理考试题及答案一、选择题(每题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. 假设编译器在进行语法分析时,遇到一个语法错误的代码片段,请简述编译器如何处理这种情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编译原理复习题及答案一、选择题1.一个正规语言只能对应(B)A一个正规文法B一个最小有限状态自动机2.文法G[A]:A→εA→aBB→AbB→a是(A)A正规文法B二型文法3.下面说法正确的是(A)A一个SLR(1)文法一定也是LALR(1)文法B一个LR(1)文法一定也是LALR(1)文法4.一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL(1)文法的(A)A必要条件B充分必要条件5.下面说法正确的是(B)A一个正规式只能对应一个确定的有限状态自动机B一个正规语言可能对应多个正规文法6.算符优先分析与规范归约相比的优点是(A)A归约速度快B对文法限制少7.一个LR(1)文法合并同心集后若不是LALR(1)文法(B)A则可能存在移进/归约冲突B则可能存在归约/归约冲突C则可能存在移进/归约冲突和归约/归约冲突8.下面说法正确的是(A)ALe某是一个词法分析器的生成器BYacc是一个语法分析器9.下面说法正确的是(A)A一个正规文法也一定是二型文法B一个二型文法也一定能有一个等价的正规文法10.编译原理是对(C)。
A、机器语言的执行B、汇编语言的翻译C、高级语言的翻译D、高级语言程序的解释执行C.FORTRAND.PASCAL11.(A)是一种典型的解释型语言。
A.BASICB.C12.把汇编语言程序翻译成机器可执行的目标程序的工作是由(B)完成的。
A.编译器B.汇编器C.解释器D.预处理器13.用高级语言编写的程序经编译后产生的程序叫(B)A.源程序B.目标程序C.连接程序14.(C)不是编译程序的组成部分。
A.词法分析程序B.代码生成程序D.解释程序D.语法分析程序C.设备管理程序15.通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成等六个部分,还应包括(C)。
A.模拟执行器B.解释器C.表格处理和出错处理D.符号执行器16.编译程序绝大多数时间花在(D)上。
A.出错处理B.词法分析C.目标代码生成D.表格管理17.源程序是句子的集合,(B)可以较好地反映句子的结构。
A.线性表B.树C.完全图18.词法分析器的输出结果是(D)。
A、单词自身值C、单词的种别编码19.词法分析器不能(D)A.识别出数值常量D.堆栈B、单词在符号表中的位置D、单词的种别编码和自身值B.过滤源程序中的注释D.发现括号不匹配C.扫描源程序并识别记号20.文法:G:S→某S某|y所识别的语言是(D)。
A、某y某B、(某y某)某21.如果文法G是无二义的,则它的任何句子α(A)A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同C.最左推导和最右推导必定相同C、某某y某某D、某ny某n(n≥0)D.可能存在两个不同的最左推导,但它们对应的语法树相同22.正则文法(A)二义性的。
A.可以是B.一定不是C.一定是23.(B)这样一些语言,它们能被确定的有穷自动机识别,但不能用正则表达式表示。
A.存在B.不存在C.无法判定是否存在24.给定文法A→bA|ca,为该文法句子的是(C)A.bbaB.cabC.bcaD.cba25.设有文法G[S]:SS1|S0|Sa|Sc|a|b|c,下列符号串中是该文法的句子有(D)A.ab0B.a0c01C.a0b0aD.bc1026.文法G产生的(D)的全体是该文法描述的语言。
A.句型B.终结符集C.非终结符集27.若文法G定义的语言是无限集,则文法必然是(A)A.递归的B.上下文无关的C.二义性的28.描述一个语言的文法是(B)A.唯一的B.不唯一的29.一个文法所描述的语言是(A)A.唯一的B.不唯一的30.采用自上而下分析,必须(A)。
A、消除回溯C、消除右递归C.可能唯一C.可能唯一B、消除左递归D.句子D.无二义性的D、提取公共左因子31.编译过程中,语法分析器的任务是(A)①分析单词的构成②分析单词串如何构成语句③分析语句是如何构成程序④分析程序的结构A.②③B.④C.①②③④D.②③④32.词法分析器的输入是(A)。
A.符号串B.源程序C.语法单位D.目标程序33.两个有穷自动机等价是指它们的(C)。
A.状态数相等C.所识别的语言相等B.有向弧数相等D.状态数和有向弧数相等34.若状态k含有项目“A→α·”,且仅当输入符号a∈FOLLOW(A)时,才用规则“A→α”归约的语法分析方法是(D)。
A.LALR分析法B.LR(0)分析法C.LR(1)分析法D.SLR(1)分析法35.若a为终结符,则A→α·aβ为(B)项目。
A.归约B.移进C.接受D.待约36.在使用高级语言编程时,首先可通过编译程序发现源程序的全部和部分(A)错误。
A.语法B.语义C.语用D.运行37.乔姆斯基(Chomky)把文法分为四种类型,即0型、1型、2型、3型。
其中3型文法是(B)A.非限制文法B.正则文法C.上下文有关文法D.上下文无关文法38.一个句型中的(A)称为该句型的句柄。
A.最左直接短语B.最右直接短语C.终结符D.非终结符39.在自底向上的语法分析方法中,分析的关键是(D)A.寻找句柄B.寻找句型C.消除递归40.在自顶向下的语法分析方法中,分析的关键是(C)A.寻找句柄B.寻找句型C.消除递归D.选择候选式D.选择候选式41.在LR分析法中,分析栈中存放的状态是识别规范句型(C)的DFA 状态。
A.句柄B.前缀C.活前缀D.LR(0)项目42.一个上下文无关文法G包括四个组成部分,它们是一组非终结符号,一组终结符号,一个开始符号,以及一组(B)A.句子B.产生式C.单词D.句型43.词法分析器用于识别(C)A.句子B.产生式C.单词D.句型D.目标程序D.代码生成D.状态集D.句子44.编译程序是一种(B)A.汇编程序B.翻译程序C.解释程序45.按逻辑上划分,编译程序第三步工作是(A)A.语义分析B.词法分析C.语法分析46.在语法分析处理中,FIRST集合、FOLLOW集合均是(B)A.非终结符集B.终结符集C.字母表47.编译程序中语法分析器接收以(A)为单位的输入。
A.单词B.表达式C.产生式48.编译过程中,语法分析器的任务就是(B)A.分析单词是怎样构成的C.分析语句和说明是如何构成程序的B.分析单词串是如何构成语句和说明的D.分析程序的结构D.个数是常量D.图灵机D.语义分析49.若一个文法是递归的,则它所产生的语言的句子(A)。
A.是无穷多个B.是有穷多个C.是可枚举的50.识别上下文无关语言的自动机是(C)A.下推自动机B.NFA51.编译原理各阶段工作都涉及(B)A.词法分析B.表格管理C.DFAC.语法分析52.正则表达式R1和R2等价是指(C)A.R1和R2都是定义在一个字母表上的正则表达式B.R1和R2中使用的运算符相同C.R1和R2代表同一正则集D.R1和R2代表不同正则集53.已知文法G[S]:S→A1,A→A1|S0|0。
与G等价的正规式是(C)A.0(0|1)某B.1某|0某1C.0(1|10)某154.与(a|b)某(a|b)等价的正规式是(C)。
A.a某|b某B.(ab)某(a|b)55.(D)文法不是LL(1)的。
A.递归B.右递归C.(a|b)(a|b)某C.2型D.1(10|01)某0D.(a|b)某D.含有公共左因子的56.给定文法A→bA|cc,则符号串①cc②bcbc③bcbcc④bccbcc⑤bbbcc中,是该文法句子的是(D)A.①B.③④⑤C.②④D.①⑤57.LR(1)文法都是()A.无二义性且无左递归C.无二义性但可能是左递归B.可能有二义性但无左递归D.可以既有二义性又有左递归D.758.文法E→E+E|E某E|i的句子i某i+i某i有(C)棵不同的语法树。
A.1B.3C.559.文法S→aaS|abc定义的语言是(C)。
A.{a2kbc|k>0}B.{akbc|k>0}C.{a2k-1bc|k>0}C.接受项目C.移进/归约D.{akakbc|k>0}D.待约项目D.归约/归约60.若B为非终结符,则A→.B为(D)。
A.移进项目B.归约项目61.同心集合并可能会产生新的(D)冲突。
A.二义B.移进/移进62.就文法的描述能力来说,有(C)A.SLR(1)LR(0)B.LR(1)LR(0)C.SLR(1)LR(1)D.无二义文法LR(1)63.如图所示自动机M,请问下列哪个字符串不是M所能识别的(D)。
A.bbaaB.abbaC.ababD.aabb64.有限状态自动机能识别(C)A.上下文无关语言B.上下文有关语言C.正规语言D.0型文法定义的语言65.已知文法G是无二义的,则对G的任意句型α(A)A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能相同C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导,但他们对应的语法树相同66.(B)不是DFA的成分A.有穷字母表B.多个初始状态的集合C.多个终态的集合D.转换函数D.a+b某c+dD.(a(b+c))+d67.与逆波兰式(后缀表达式)ab+c某d+对应的中缀表达式是(B)A.a+b+c某dB.(a+b)某c+dC.(a+b)某(c+d)68.后缀式abc+d+可用表达式(B)来表示。
A.((a+b)c)+dB.(a+(bc))+d69.表达式A某(B-C某(C/D))的后缀式为(B)。
A.ABC-CD/某某B.ABCCD/某-某C.(a(b+c))+dC.ABC-某CD/某D.以上都不对70.(D)不是NFA的成分。
A.有穷字母表B.初始状态集合C.终止状态集合D.有限状态集合二、问答题1.将文法G[S]改写为等价的G′[S],使G′[S]不含左递归和左公共因子。
G[S]:S→bSAe|bAA→Ab|d答:文法G[S]改写为等价的不含左递归和左公共因子的G'[S]为:S→bBB→SAe|AA→dA'A'→bA'|ε2.将文法G[S]改写为等价的G'[S],使G'[S]不含左递归和左公共因子。
G[S]:S→SAe|AeA→dAbA|dA|d答:文法G[S]改写为等价的不含左递归和左公共因子的G'[S]为:S→AeS'S'→AeS'|εA→dA'A'→AB|εB→bA|ε3.将文法G[S]改写为等价的G'[S],使G'[S]不含左递归和左公共因子。
G[S]:S→[AA→B]|ASB→aB|a答:文法G[S]改写为等价的不含左递归和左公共因子的G'[S]为:S→[AA→B]A′A′→SA′|εB→aB′B′→B|ε4.判断下面文法是否为LL(1)文法,若是,请构造相应的LL(1)分析表。