编译原理考试复习题

2020-02-21 22:14

河南城建学院2010学年第一学期期末考试

《编译原理》试题(A卷)

一、填空题:(每空1分,共10分)

1、符号表项的组织常采用线性法、二分法和(散列法)。

2、整个编译过程可以划分成五个阶段:(词法分析)、语法分析阶段、(语义分析及中间代码生成)、(代码优化)和目标代码生成阶段。 3、对于文法G,仅含终结符号的句型称为(句子)。 4、逆波兰式ab+c+d*e-所表达式为((a+b+c)*d-e)。 5、语言翻译常用的两种形式是(编译)和(解释)。

6、词法分析器输出的是单词符号,语法分析器输出的是(语法单元)。 二、选择题:(每空2分,共10分)

1、3型文法是(D)是语法分析使用的文法。

A.短语文法 B.上下文有关文法 C.上下文无关文法 D.正规文法

2、语法分析是依据语言的(A)规则进行的,中间代码产生是依据语言的()规则进行的。 A.语法, 推导 B.语义,产生式 C.语法, 语义 D.推导, 产生式 3、错误“变量类型声明不一致”将在( C )阶段发现。 A.词法分析 B.语法分析 C.语义分析 D.目标代码生成 4、下列( D )不是数据空间的使用方法和管理方法

A.静态存储分配 B.栈式动态存储分配 C.堆式动态存储分配 D.段页式存储分配 三、计算题:(每题6分,共24分)

1、对给定正规表达式b*(d∣ad) (b∣ab)+构造其NFA M。

解:先用R+=RR*改造题设的正规表达式为b*(d∣ad) (b∣ab) (b∣ab)*,然后构造其 NFA M,如图:

2、试给出下列语句的四元式序列:

if (a<0∧b>5) X[1,1]==1; else X[3,2]=0; 其中,X是10×20的数组(每维下界为1)且按行存放;一个数组元素占用两个字节,机器按字节编址。 解:100 (j<, a, 0, 102) 108 ([ ]=,1, _,T4[T3]) 101 (j,_, _,110) 109 (j, _,_,115) 102 (j>,b,5,104) 110 (*,3,40,T1) 103 (j, _,_,110) 111 (*,2,2,T2) 104 (*,1,40,T1) 112 (+,T1,T2,T3) 105 (*,1,2,T2) 113 (?,X,42,T4) 106 (+,T1,T2,T3) 114 ([ ]=,0, _,T4[T3])

115 107 (?,X,42,T4)

3、已知文法G[E]为: E→T∣E+T T→F∣T*F F→(E)∣i 试确定T+T*F+i的最左素短语。

解:短语有:T+T*F+i T+T*F T T*F i

根据最左素短语必须具备的条件及短语的要求得到最左素短语为T*F。

4、对文法G[S] S→a|∧|(T) T→T,S|S (1) 给出(a,(a,a))的最左推导。 是二义性文法。

解:对(a,(a,a)的最左推导为:

S→ (T) →(T,S) →(S,S) → (a,S) →(a,(T)) → (a,(T,S)) → (a,(S,S)) → (a,(a,S)) → (a,(a,a))

四、证明题(每题8分,共16分)

1、试证明文法G=({E,O},{(,),+,*,v,d},P,E),其中P为: E→EOE∣(E)∣v∣d O→+∣* 是二义性文法。

证明:对于句子v*v+d的语法树不只一棵,可画出语法树或写出两个不同的最左推导。

2、文法

E→E+E∣E*E∣E/E∣E↑E∣(E) ∣i

试证明该文法是算符文法,但不是算符优先文法。

证明:由于文法G[E]中的任何产生式右部都不含两个相邻的非终结符,所以G[E]是算符文法。此外,因为

(1) 由于存在E→E+E,而E+E中的第二个E可推出E E*E,即有+?*; (2) 由于存在E→E*E,而E*E中的第一个E可推出 E E+E,即有+?*。

此即运算符+和*之间同时存在着两种不同的优先关系,故文法G[E]不是一个算符优先文法。

五、综合题(第1小题10分,第2、3小题各15分) 1、对下图的流图:

(1) 求出流图中各结点n的必经结点集D(n); (2) 求出流图中的回边; (3) 求出流图中的循环。 解:

D(1)={1}

D(2)={1,2} D(3)={1,2,3} D(4)={1,2,4} D(5)={1,2,4,5} D(6)={1,2,4,6} D(7)={1,2,4,7}

6→6、7→4、4→2是回边

由回边6→6组成的循环是{6},由回边7→4组成的循环是{4,5,6,7},由回边4→2组成的循环是{2,3,4,5,6,7}

2、文法G3:

S→A[B] A→[B]|Aa B→a (1)求出各非终结符N的Firstvt(N)和Lastvt(N),构造包括语句括号'#'在内的算符优先表; (2)给出语句#[a][a]#的算符优先分析过程.

解:(1)Fistvt(S)={[,a} Firstvt(A)={[,a} Firstvt(B)={a} Lastvt(S)={]} Lastvt(A)={ ],a} Lastvt(B)={a}

3、将下图的(a)和(b)分别确定化和最小化:

一、填空题:(每空1分,共10分)

1、整个编译过程可以划分成五个阶段:( )、语法分析阶段、 ( )、( )和目标代码生成阶段。

2、语法分析最常用的两类方法是( )和自下而上分析。 3、符号表项的组织常采用线性法、二分法和( )。 4、对于文法G,仅含终结符号的句型称为( )。

5、词法分析器输出的是单词符号,语法分析器输出的是( ) 6、逆波兰式B-CD*+所表达式为( )

7、一个文法是LR(0)文法一定也是( )文法,也是( )文法。

二、选择题:(每空2分,共10分)

1、语法分析使用的上下文无关文法是( )。 A.0型文法 B.1型文法 C.2型文法 D.3型文法 2、文法 G产生的()的全体是该文法描述的语言。 A. 句子 B.终结符集 C. 非终结符集 D. 句型

3、错误“数组下标为浮点数”将在()阶段发现。

A.词法分析 B.语法分析 C.语义分析 D.目标代码生成 4、算符优先关系表()存在优先函数

A.一定 B.不一定 C.一定不 D.以上都不对 5、文法:G:S→xSx|y所识别的语言是()。

A、xyx B、(xyx)* C、x*yx* D、xnyxn(n≥0) 三、计算题:(每题6分,共24分) 1、对给定正规表达式1(0∣1)*101,构造其NFA M。

2、试给出下列语句的四元式序列: for I:= 1 to 10 do A[I, 2*J] := A[I, 2*J] + 10 其中A是 10×10的数组(每维下界为1)。

3、已知文法G[S]为: S→V V→T︱ViT T→F︱T+F F→V* ︱(

指出句型F+Fi(的短语、句柄、素短语。

4、已知文法G[S] S→AB A→aA∣|a B→bB∣b 给出aaabbb的最左推导

四、证明题(每题8分,共16分)

1、试证明文法G=({E,O},{(,),+,*,v,d},P,E),其中P为:


编译原理考试复习题.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:一元二次方程根的判别式及韦达定理

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: