编译原理习题及答案(整理后)

合集下载

编译原理试题及答案

编译原理试题及答案

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

(完整版)编译原理复习题及答案

(完整版)编译原理复习题及答案

编译原理复习题及答案一、选择题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.BASIC B.C C.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)上。

完整版编译原理复习题及答案

完整版编译原理复习题及答案

编译原理复习题及答案一、选择题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) 可以较好地反映句子的结构。

编译原理一些习题答案

编译原理一些习题答案

第2章形式语言基础2.2 设有文法G[N]: N -> D | NDD -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9(1)G[N]定义的语言是什么?(2)给出句子0123和268的最左推导和最右推导。

解答:(1)L(G[N])={(0|1|2|3|4|5|6|7|8|9)+} 或L(G[N])={α| α为可带前导0的正整数}(2)0123的最左推导:N ⇒ ND ⇒ NDD ⇒ NDDD ⇒ DDDD ⇒ 0DDD ⇒ 01DD ⇒ 012D ⇒ 0123 0123的最右推导:N ⇒ ND ⇒ N3 ⇒ ND3 ⇒ N23 ⇒ ND23 ⇒ N123 ⇒ D123 ⇒ 0123268的最左推导:N ⇒ ND ⇒ NDD ⇒ DDD ⇒ 2DDD ⇒ 26D ⇒ 268268的最右推导:N ⇒ ND ⇒ N8 ⇒ ND8 ⇒ N68 ⇒ D68 ⇒ 2682.4 写一个文法,使其语言是奇数的集合,且每个奇数不以0开头。

解答:首先分析题意,本题是希望构造一个文法,由它产生的句子是奇数,并且不以0开头,也就是说它的每个句子都是以1、3、5、7、9中的某个数结尾。

如果数字只有一位,则1、3、5、7、9就满足要求,如果有多位,则要求第1位不能是0,而中间有多少位,每位是什么数字(必须是数字)则没什么要求,因此,我们可以把这个文法分3部分来完成。

分别用3个非终结符来产生句子的第1位、中间部分和最后一位。

引入几个非终结符,其中,一个用作产生句子的开头,可以是1-9之间的数,不包括0,一个用来产生句子的结尾,为奇数,另一个则用来产生以非0整数开头后面跟任意多个数字的数字串,进行分解之后,这个文法就很好写了。

N -> 1 | 3 | 5 | 7 | 9 | BNB -> 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | B02.7 下面文法生成的语言是什么?G1:S->ABA->aA| εB->bc|bBc G2:S->aA|a A->aS解答:B ⇒ bcB ⇒ bBc⇒ bbccB ⇒ bBc⇒ bbBcc ⇒ bbbccc……A ⇒εA ⇒ aA ⇒ aA ⇒ aA ⇒ aaA ⇒ aa……∴S ⇒ AB ⇒ a m b n c n , 其中m≥0,n≥1即L(G1)={ a m b n c n | m≥0,n≥1} S ⇒ aS ⇒ aA ⇒ aaS ⇒ aaaS ⇒ aA ⇒ aaS ⇒ aaaA ⇒aaaaS ⇒ aaaaa ……∴S ⇒ a2n+1 , 其中n≥0即L(G2)={ a2n+1 | n≥0}2.11 已知文法G[S]: S->(AS)|(b)A->(SaA)|(a)请找出符号串(a)和(A((SaA)(b)))的短语、简单短语和句柄。

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

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

第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 是它的一个句型,指出这个句型的所有短语、直接短语和句柄。

编译原理考试习题及答案

编译原理考试习题及答案

最右推导
E T T*F T*(E) T*(E+T) T*(E+F) T*(E+i) T*(T+i) T*(F+i) T*(i+i) F*(i+i) i*(i+i)
14
CH.2.练习题8(P36.)
8. 令文法为
(2) 给出 i+i+i、i+i*i和i-i-i的语法树。
E → T|E+T|E-T
(2) 1(1010*|1 (010)*1)*0
1
4
05
0*
1
6
X 1 1ε 2 ε 3 0 Y
1
7 (010)* 8
1
4 0 5 1 6ε
0
9
1
ε
X 1 1ε 2 ε 3 0 Y
1
ε 10
ε
7
010
1
8
2023/7/29
8
4 0 5 1 6ε 9 0
1
ε
X 1 1ε 2 ε 3 0 Y
1
7
ε
10 ε
0
01
0
1
0
1
2
2023/7/29
10
CH.3.练习题14(P64.)
(1) 正规式: (10|0)*
(2) NFA:
0
X ε 1εY
1
0
2
DFA: 0
0
1 1
2023/7/29
0
1
0
2
构造一个DFA,它接受 S= {0,1}上所有满足如下条件 的字符串:每个1都有0直 接跟在右边。
DFA:(最简)
,a))# , a ))#

编译原理课后第十一章答案

编译原理课后第十一章答案

对假设(2) B:=3 D:=A+C E:=A*C F:=D+E K:=B*5 L:=K+F
计算机咨询网()陪着您
10
《编译原理》课后习题答案第十一章
第7题 分别对图 11.25 和 11.26 的流图: (1) 求出流图中各结点 n 的必经结点集 D(n)。 (2) 求出流图中的回边。 (3) 求出流图中的循环。
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13)
i:=m-1 j:=n t1:=4*n v:=a[t1] i:=i+1 t2:=4*i t3:=a[t2] if t3< v goto (5) j:=j-1 t5:=4*j t5:=a[t4] if t5> v goto (9) if i >=编译原理》课后习题答案第十一章
第 5 题: 如下程序流图(图 11.24)中,B3 中的 i∶=2 是循环不变量,可以将其提到前置结点吗? 你还能举出一些例子说明循环不变量外移的条件吗?
图 11.24 答案: 不能。因为 B3 不是循环出口 B4 的必经结点。 循环不变量外移的条件外有: (a)(I)s 所在的结点是 L 的所有出口结点的必经结点 (II)A 在 L 中其他地方未再定值 (III)L 中所有 A 的引用点只有 s 中 A 的定值才能到达 (b)A 在离开 L 之后不再是活跃的,并且条件(a)的(II)和(III)成立。所谓 A 在离开 L 后不再是活跃的是指,A 在 L 的任何出口结点的后继结点的入口处不是活跃的(从此点后 不被引用) (3)按步骤(1)所找出的不变运算的顺序,依次把符合(2)的条件(a)或(b)的 不变运算 s 外提到 L 的前置结点中。如果 s 的运算对象(B 或 C)是在 L 中定值的,则只有 当这些定值四元式都已外提到前置结点中时,才可把 s 也外提到前置结点。

编译原理答案整理

编译原理答案整理

1第2章 习题2-1 设有字母表A 1 ={a,b,c,…,z},A 2={0,1,={0,1,……,9},9},试回答下列问题:,试回答下列问题:,试回答下列问题:(1) 字母表A 1上长度为2的符号串有多少个?的符号串有多少个? (2) 集合A 1A 2含有多少个元素?含有多少个元素?(3) 列出集合A 1(A 1∪A 2)*中的全部长度不大于3的符号串。

的符号串。

2-2 试分别构造产生下列语言的文法:试分别构造产生下列语言的文法:试分别构造产生下列语言的文法: (1){a nb n|n≥0};|n≥0}; (2){a n b m c p |n,m,p≥0};|n,m,p≥0};(3){a n#b n|n≥0}∪|n≥0}∪{c {c n#d n|n≥0};|n≥0};(4){w#w r # | w ∈{0,1}*,w r 是w 的逆序排列的逆序排列 } }; (5)任何不是以0打头的所有奇整数所组成的集合;的集合;(6)所有由偶数个0和偶数个1所组成的符号串的集合。

号串的集合。

2-3 试描述由下列文法所产生的语言的特点:试描述由下列文法所产生的语言的特点: (1)S→10S0)S→10S0 S→aA S→aA A→bA A→bA A→a A→a (2)S→SS S→1A0S→1A0 A→1A0A→1A0A→ε (3)S→1A )S→1A S→B0S→B0 A→1A A→1A A→C A→C B→B0B→B0 B→C B→C C→1C0C→1C0C→ε(4)S→aSS )S→aSS S→a S→a 2-4 试证明文法试证明文法试证明文法 S →AB|DC A →aA|a B →bBc|bc C →cC|c D →aDb|ab为二义性文法。

为二义性文法。

2-5 对于下列的文法对于下列的文法对于下列的文法 S →AB|c A →bA|a B →aSb|c试给出句子bbaacb 的最右推导,并指出各步直接推导所得句型的句柄;指出句子的全部短语。

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

第一章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、使用可以定义一个程序得意义。

a.语义规则b.语法规则c.产生规则d.词法规则7、词法分析器得输入就是。

a.单词符号串b.源程序c.语法单位d.目标程序8、中间代码生成时所遵循得就是- 。

a.语法规则b.词法规则c.语义规则d.等价变换规则9、编译程序就是对。

a.汇编程序得翻译b.高级语言程序得解释执行c.机器语言得执行d.高级语言得翻译10、语法分析应遵循。

a.语义规则b.语法规则c.构词规则d.等价变换规则二、多项选择题1、编译程序各阶段得工作都涉及到。

a.语法分析b.表格管理c.出错处理d.语义分析e.词法分析2、编译程序工作时,通常有阶段。

a.词法分析b.语法分析c.中间代码生成d.语义检查e.目标代码生成三、填空题1、解释程序与编译程序得区别在于。

2、编译过程通常可分为5个阶段,分别就是、语法分析、代码优化与目标代码生成。

3、编译程序工作过程中,第一段输入就是,最后阶段得输出为程序。

4、编译程序就是指将程序翻译成程序得程序。

单选解答1、将编译程序分成若干个“遍”就是为了使编译程序得结构更加清晰,故选b。

2、构造编译程序应掌握源程序、目标语言及编译方法等三方面得知识,故选d。

3、对编译而言,变量既持有左值又持有右值,故选c。

4、编译程序打交道最多得就就是各种表格,因此选d。

5、目标代码包括汇编指令代码、可重定位指令代码与绝对指令代码3种,因此不就是目标代码得只能选d。

6、词法分析遵循得就是构词规则,语法分析遵循得就是语法规则,中间代码生成遵循得就是语义规则,并且语义规则可以定义一个程序得意义。

因此选a。

7、b 8、c 9、d 10、c多选解答1.b、c 2、a、b、c、e填空解答就是否生成目标程序2、词法分析中间代码生成3、源程序目标代码生成4、源程序目标语言第二章一、单项选择题1、文法G:S→xSx|y所识别得语言就是。

a、xyxb、(xyx)*c、x n yx n(n≥0)d、x*yx*2、文法G描述得语言L(G)就是指。

a、L(G)={α|S+⇒α , α∈V T*}b、L(G)={α|S*⇒α, α∈V T*}c、L(G)={α|S*⇒α,α∈(V T∪V N*)}d、L(G)={α|S+⇒α, α∈(V T∪V N*)}3、有限状态自动机能识别。

a、上下文无关文法b、上下文有关文法c、正规文法d、短语文法4、设G为算符优先文法,G得任意终结符对a、b有以下关系成立。

a、若f(a)>g(b),则a>bb、若f(a)<g(b),则a<bc、a~b都不一定成立d、a~b一定成立5、如果文法G就是无二义得,则它得任何句子α。

a、最左推导与最右推导对应得语法树必定相同b、最左推导与最右推导对应得语法树可能不同c、最左推导与最右推导必定相同d、可能存在两个不同得最左推导,但它们对应得语法树相同6、由文法得开始符经0步或多步推导产生得文法符号序列就是。

a、短语b、句柄c、句型d、句子7、文法G:E→E+T|TT→T*P|PP→(E)|I则句型P+T+i得句柄与最左素短语为。

a、P+T与ib、P与P+Tc、i与P+T+id、P与T8、设文法为:S→SA|AA→a|b则对句子aba,下面就是规范推导。

a、S⇒SA⇒SAA⇒AAA⇒aAA⇒abA⇒abab、S⇒SA⇒SAA⇒AAA⇒AAa⇒Aba⇒abac、S⇒SA⇒SAA⇒SAa⇒Sba⇒Aba⇒abad、S⇒SA⇒Sa⇒SAa⇒Sba⇒Aba⇒aba9、文法G:S→b|∧(T)T→T,S|S则FIRSTVT(T) 。

a、{b,∧,(}b、{b,∧,)}c、{b,∧,(,,}d、{b,∧,),,}10、产生正规语言得文法为。

a、0型b、1型c、2型d、3型11、采用自上而下分析,必须。

a、消除左递归b、消除右递归c、消除回溯d、提取公共左因子12、在规范归约中,用来刻画可归约串。

a、直接短语b、句柄c、最左素短语d、素短语13、有文法G:E→E*T|TT→T+i|i句子1+2*8+6按该文法G归约,其值为。

a、23 B、42 c、30 d、1714、规范归约指。

a、最左推导得逆过程b、最右推导得逆过程c、规范推导d、最左归约得逆过程二、多项选择题1、下面哪些说法就是错误得。

a、有向图就是一个状态转换图b、状态转换图就是一个有向图c、有向图就是一个DFAd、DFA可以用状态转换图表示2、对无二义性文法来说,一棵语法树往往代表了。

a、多种推导过程b、多种最左推导过程c、一种最左推导过程d、仅一种推导过程e、一种最左推导过程3、如果文法G存在一个句子,满足下列条件之一时,则称该文法就是二义文法。

a、该句子得最左推导与最右推导相同b、该句子有两个不同得最左推导c、该句子有两棵不同得最右推导d、该句子有两棵不同得语法树e、该句子得语法树只有一个4、有一文法G:S→ABA→aAb|εB→cBd|ε它不产生下面集合。

a、{a n b m c n d m|n,m≥0}b、{a n b n c m d m|n,m>0}c、{a n b m c m d n|n,m≥0}d、{a n b n c m d m|n,m≥0}e、{a n b n c n d n|n≥0}5、自下而上得语法分析中,应从开始分析。

a、句型b、句子c、以单词为单位得程序d、文法得开始符e、句柄6、对正规文法描述得语言,以下有能力描述它。

a、0型文法b、1型文法c、上下文无关文法d、右线性文法e、左线性文法三、填空题1、文法中得终结符与非终结符得交集就是。

词法分析器交给语法分析器得文法符号一定就是,它一定只出现在产生式得部。

2、最左推导就是指每次都对句型中得非终结符进行扩展。

3、在语法分析中,最常见得两种方法一定就是分析法,另一就是分析法。

4、采用语法分析时,必须消除文法得左递归。

5、树代表推导过程,树代表归约过程。

6、自下而上分析法采用、归约、错误处理、等四种操作。

7、Chomsky把文法分为种类型,编译器构造中采用与文法,它们分别产生与语言,并分别用与自动机识别所产生得语言。

四、判断题1、文法S→aS|bR|ε描述得语言就是(a|bc)* ( )R→c S2、在自下而上得语法分析中,语法树与分析树一定相同。

()3、二义文法不就是上下文无关文法。

()4、语法分析时必须先消除文法中得左递归。

()5、规范归约与规范推导就是互逆得两个过程。

()6、一个文法所有句型得集合形成该文法所能接受得语言。

()五、简答题1、句柄2、素短语3、语法树4、归约5、推导六、问答题1、给出上下文无关文法得定义。

2、文法G[S]:S→aSPQ|abQQP→PQbP→bbbQ→bccQ→cc(1)它就是Chomsky哪一型文法?(2)它生成得语言就是什么?3、按指定类型,给出语言得文法。

L={a i b j|j>i≥1}得上下文无关文法。

4、有文法G:S→aAcB|BdA→AaB|cB→bScA|b(1)试求句型aAaBcbbdcc与aAcbBdcc得句柄;(2)写出句子acabcbbdcc得最左推导过程。

5、对于文法G[S]:S→(L)|aS|a L→L, S|S(1)画出句型(S,(a))得语法树。

(2)写出上述句型得所有短语、直接短语、句柄与素短语。

6、考虑文法G[T]:T→T*F|FF→F↑P|PP→(T)|i证明T*P↑(T*F)就是该文法得一个句型,并指出直接短语与句柄。

单选[解答]1、选c。

2、选a。

3、选c。

4、虽然a与b没有优先关系,但构造优先函数后,a与b就一定存在优先关系了。

所以,由f(a)>g)(b)或f(a)<g(b)并不能判定原来得a与b之间就是否存在优先关系:故选c。

5、如果文法G无二义性,则最左推导就是先生长右边得枝叶:对于d,如果有两个不同得就是了左推导,则必然有二义性。

故选a。

6、选c。

7、由图2-8-1得语法树与优先关系可以瞧出应选b。

8、规范推导就是最左推导,故选d。

9、由T→T,…与T→(…得FIRSTVT(T))={(,,)};由T→S得FIRSTVT(S)⊂FIRSTVT(T),而FIRSTVT(T)={b,∧,(,,};因此选c。

10、d 11、c 12、b 13、b 14、b多选解答1、e、a、c 2、a、c、e 3、b、c、d 4、a填空解答1、空集终结符右2、最左3、自上而上自下而上4、自上而上5、语法分析6、移进接受7、4 2 型3型上下文无关语言正规语言下推自动机有限判断解答1、对2、错3、错4、错5、错6、错简答[解答]1、句柄:一个句型得最左直接短语称为该句型得句柄。

2、素短语:至少含有一个终结符得素短语,并且除它自身之外不再含任何更小得素短语。

3、语法树:满足下面4个条件得树称之为文法G[S]得一棵语法树。

①每一终结均有一标记,此标记为V N∪V T中得一个符号;②树得根结点以文法G[S]得开始符S标记;③若一结点至少有一个直接后继,则此结点上得标记为V N中得一个符号;④若一个以A为标记得结点有K个直接后继,且按从左至右得顺序,这些结点得标记分别为X1,X2,…,X K,则A→X1,X2,…,X K,必然就是G得一个产生式。

4、归约:我们称αγβ直接归约出αAβ,仅当A→γ就是一个产生式,且α、β∈(V N∪V T)*。

归约过程就就是从输入串开始,反复用产生式右部得符号替换成产生式左部符号,直至文法开始符。

5、推导:我们称αAβ直接推出αγβ,即αAβ⇒αγβ,仅当A→γ就是一个产生式,且α、β∈(V N∪V T)*。

如果α1⇒α2⇒…⇒αn,则我们称这个序列就是从α1至α2得一个推导。

若存在一个从α1αn得推导,则称α1可推导出αn。

推导就是归约得逆过程。

问答1[解答]一个上下文无关文法G就是一个四元式(V T,V N,S, P),其中:●V T就是一个非空有限集,它得每个元素称为终结符号;●V N就是一个非空有限集,它得每个元素称为非终结符号,V T∩V N=Φ;●S就是一个非终结符号,称为开始符号;●P就是一个产生式集合(有限),每个产生式得形式就是P→α,其中,P∈V N,α∈(V T∪V N)*。

相关文档
最新文档