编译原理试题及答案 - 加强版

更新时间:2023-10-31 14:55:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

编译原理试题及答案

<高级版>

一、对于文法 G[S] :

S → 1A | 0B | ε A → 0S | 1AA B → 1S | 0BB ⑴ (3 分 ) 请写出三个关于 G[S] 的句子;

⑵ (4 分 ) 符号串 11A0S 是否为 G [S] 的句型?试证明你的结论。

⑶ (3 分 ) 试画出 001B 关于 G [S] 的语法树。 二、请构造一个文法,使其产生这样的表达式 E :表达式中只含有双目运算符 + 、 * ,且 + 的优先级高于 * , + 采用右结合, * 采用左结合,运算对象只有标识符 i ,可以用括号改变运算符优先级。要求给出该文法的形式化描述。

三、设有语言 L={ α | α∈ {0,1} + ,且α不以 0 开头,但以 00 结尾 } 。

⑴试写出描述 L 的正规表达式;

⑵构造识别 L 的 DFA (要求给出详细过程,并画出构造过程中的 NDFA 、 DFA 的状态转换图,以及 DFA 的形式化描述 ) 。 四、给定文法 G[S] : S → AB

A → aB | bS | c B → AS | d

⑴ (6 分 ) 请给出每一个产生式右部的 First 集;

1

⑵ (3 分 ) 请给出每一个非终结符号的 Follow 集; ⑶ (8 分 ) 请构造该文法的 LL(1) 分析表;

⑷ (8 分 ) 什么是 LL(1) 文法?该文法是 LL(1) 文法吗?为什么?

五、给定文法 G[S] : S → SaA|a A → AbS|b

⑴请构造该文法的以 LR(0) 项目集为状态的识别规范句型活前缀的 DFA 。

⑵请构造该文法的 LR(0) 分析表。

⑶什么是 LR(0) 文法?该文法是 LR(0) 文法吗?为什么? ⑷什么是 SLR(1) 文法?该文法是 SLR(1) 文法吗?为什么? 六、给定下列语句: if a+b>c

then x := a*(b-c) + (b*c-d)/e ⑴写出其等价的逆波兰表示; ⑵写出其等价的四元式序列。 七、已知下列 C 语言程序: int * f()

{ int a = 100; return &a; } main()

2

{ int * i = f();

char a[] = “compiler”; printf(“the result is %d\\n”, *i); }

程序运行结果为: the result is 26157,

请解释为什么程序运行的结果不是期望的“ the result is 100 ”?

1.1 三个 0 和 1 数量相等的串 1.2 S => 1A => 11AA => 11A 0S 1.3

第二题 构造文法如下 :

G[E]=({+,*,(,),i}, {E,F,T}, P, E) , 其中 P 为: E→E*F|F F→T+F|T T→(E)|i 第三题 ( 1 )正规表达式: 1(0|1) * 00 ( 2 )第一步:将正规表达式转换为 NDFA

3

第二步:将 NDFA 确定化为 DFA :

造表法确定化( 3 分) 确定化后 DFA M 的状态转换表 (2 分 ) 状态 输入 I 0 [S]

I 1 [A,D,B]

重新命名

t

0

1

q 0 — q 1 q 1 q 2 q 3

[A,D,B] [D,B,C] [D,B] [D,B,C] [D,B,C,Z] [D,B] [D,B] [D,B,C] [D,B] [D,B,C,Z] [D,B,C,Z] [D,B] DFA 的状态转换图( 3 分)

q 2 q 4 q 3

q 3 q 2 q 3 q 4 q 4 q 3

第三步:给出 DFA 的形式化描述

4

DFA M = ( { q 0 , q 1 , q 2 , q 3 , q 4 }, {0,1}, t, q 0 , { q 4 } )

t 的定义见 M 的状态转换表。 第四题

( 1 ) First(AB) = {a, b, c} First(aB) = {a} First(bS) = {b} First(c) = {c} First(AS) = {a, b, c} First(d) = {d}

( 2 ) Follow(S) = {#, a, b, c, d} Follow(A) = {a, b, c, d} Follow(B) = {#, a, b, c, d} ( 3 ) LL(1) 分析表( 8 分)

V T

V N

a

b

c

5

d

#

本文来源:https://www.bwwdw.com/article/rfd2.html

Top