当前位置:文档之家› 编译原理复习题 (1)

编译原理复习题 (1)

编译原理复习题
1.确定有限自动机的组成
2.编译程序按功能分为哪几个阶段?各个阶段的主要功能?
3.词法分析器的任务
4.举例说明符号串的正闭包
5.什么是可规约活前缀?举一例说明。

6.词法错误校正
7.实现高级语言程序的途径有哪几种?它们之间的区别?
8.举例说明符号串的星闭包。

9.通过合并LR(1)文法中的同心状态得到的LALR(1)文法可能会产生哪些冲突?一定不会产生哪些冲突?
10.给出活动记录空间结构?并给出各部分的存储对象?
11.文法可分为几类;各举一例。

12.Display表的作用?
13.当实参为变量,形参分别为变参和值参时,传参的区别。

14.语法错误类别
15.上下文无关文法CFG(Context Free Grammar)组成
16.语言
17.语法分析树(简称分析树)
18.LL(1)文法
19.归约规范活前缀
20.符号表的局部化处理
21.二叉式局部符号表的组织结构和具体实现
22.散列式全局符号表的组织结构和具体实现
23.标号部分的语义错误
24.类型等价有按名等价和按结构的等价,试同其实现有什么主要区别?
25.属性文法的定义
26.中间代码基本块的划分
27.中间代码优化的种类
28.给出描述非0数字作为开始符的奇数字符串的正则表达式或正则式。

29.判断字符串a n b n(n >0)是否可用确定自动机识别?如果能,则画出自动机,否则说明原因。

30.对如下文法:
G[S]:S → a b S | a a B | a d
B → b b B | b
分别给出句子abaabbb和ad的句柄
31.有如下文法,给出每个产生式的Predict集。

P → begin S end
S→ id := E ; S |
E→ n | id
32.设对偶表(L,N)分别表示程序在当前位置的层数和偏移量,确定下面程序段中括号部分的内容。

假设系统规定整型(int)变量占1个单元,实型(real)变量占2个单元。

(L, N) Type at = array of [1..10] of int;
(①) var x :real;
(②) function f ( ( ?,M) var a: at,
(③) b: at,
(④) var x: real ) : int
33.有如下文法:
G[S]:S → ( L ) | a
L → S P
P → , S P | λ
给出该文法的动作文法打印每个a的嵌套深度。

例如(a,(a),(a))打印1,2,2。

36.给定下面源程序,写出词法分析后的TOKEN表示:
begin var x: real;
var j: integer;
read (j);
j:= j + ( j*20 );
x:= j-1;
write( 2*j + x )
end
37.试写出上述程序的目标程序。

begin var x: real;
var j: integer;
read (j);
j:= j + ( j*20 );
x:= j-1;
write( 2*j + x )
end
38.写出下面表达式的代码生成过程;a*a+b*c+b
39.在仅由字母表中的3个字符组成的简单字母表∑={a,b,c}中,考虑在这个字母表上的仅包括一个b的所有串的集合,求其正则表达式
40.在仅由字母表中的3个字符组成的简单字母表∑={a,b,c}中,求最多包括了一个b的所有串的集合
41.识别不同进制数的状态图
42.Pascal程序段,试问词法分析阶段能发现哪些词法错误?
if a=1. then b: =1.0 else c: =1; a: =bc+d;
43.写出识别下列正则表达式定义的单词的DFA:((a|bc)*d)+
44.构造一个DFA,它接受的符号串集合等于正则表达式(ab*c)|(abc*) 所示的字符串集合。

要求先构造NFA,其次转换成DFA,最后加以极小化。

45.文法G =( {+ , * , i , ( , )} , {E} , E , P ), 其中P为:
E → i
E → E + E
E → E * E
E → ( E )
给出句型i * i + i的两颗语法树:
46.求文法的first()、follow集合
E → TE'
E' → +TE'|ε
T →FT'
T' →*FT' |ε
F → (E)|id
47.求该文法的predict集合G E:
1. E → TE' 5. T' → *FT'
2. E' → +TE' 6. T' → ε
3. E' → ε 7. F → id
4. T → FT' 8. F → (E)
48.假设有文法:
Z → aBa
B → bB | c
写出其递归子程序。

49.已知如下文法,求其消除公共前缀后的等价文法
Stm → id:=Exp
Stm → id (ExpL)
ExpL → Exp
ExpL → Exp, ExpL
19.已知如下文法,求其消除公共前缀后的等价文法
Exp → Term+Exp | Term
Term → Factor×Term | Factor
Factor → id | (Exp)
50.说明如下文法是否是LL(1)文法,若不是,将其转换为LL(1)文法。

最后给出该文法的LL(1)分析表。

G[A]: A → B e
B → B b | a
51.判断如下文法是否是LR(1)文法,若不是,说明理由,是则画出它的LR状态图,并给出它的LR(1)分析表。

G[S]:S → a | b | (T)
T → TeS | S
52.已知如下文法,求其预测分析表
1. E → TE' 5. T' → *FT'
2. E' → +TE' 6. T' → ε
3. E' → ε 7. F → id
4. T → FT' 8. F → (E)
53.已知如下文法,画出其可归前缀图,action、goto表,写出句子aab=b#的分析过程。

Z→ S
S→ L=R | R
L→ aR | b
R→ L
54.设有文法G(C’)如下:
S→ E # [1]
E→ E+T[2]
E→ T [3]
T→ T⨯P [4]
T→ P [5]
P→ id [6]
P→ (E) [7]
构造G(C’)的LR(0)可归前缀图
构造action、goto表
写出句子id ⨯id+id的分析过程
55.求条件语句:if E then S1 else S2对应的程序流图:。

相关主题