2023年春季学期编译原理复习题

发布 2020-04-30 11:24:28 阅读 1242

一.填空题(10分)

1.符号表内容可作为上下文语义检查和作为目标**生成阶段地址分配的依据。

2.常见的中间**形式有逆波兰式、三元式和四元式。

3.pl/0编译程序为过程活动记录分配的联系单元分别是动态链、静态链和返回地址。

4.寄存器分配的原则是通过对寄存器的有效利用提高目标**的运行效率。

5.算符优先文法g的每一对终结符之间至多成立一种优先关系。

6.布尔表达式翻译的语义规则中使用了拉链和回填技术。

7.语法分析工作和目标**生成工作分属于编译过程的前端和后端。

8.属性文法表示为a=(g,v,f),其中v和f分别是属性的有穷集和断言。

9.g是一个文法,s是g的开始符号,如果符号串x是从识别符号推导出来的则x是一个句子。10.pl/0语言中表达式的语法分析部份由子程序expression 、term和factor构成。

二、单项选择题(10 分)

1.yacc是一种常用的自动构造工具。

a)语法分析器b)词法分析器c) 语法和词法分析器d)语义分析器。

2.给定文法a→aa | ab,下面的符号串中,为该文法句子的是。

a) aaba b) aaab c) baaa d) abaa

3.表达式a + b*c / d对应的逆波兰式是。

a) abc/*d+ b) abc*d/+c) ab*c/d+ d) abc*/d+

4.算符优先分析法中对句型中的进行归约。

a) 句柄b) 直接短语c) 素短语d)最左素短语。

5.设有文法g[s]:s→s*s |a+a | b ,该文法。

a) 不含左递归b)含公共左因子c) 是og文法d) 是ll(1)文法。

6.对于第5题中文法g[s],firstvt(s)=

a) b) c) d)

7.pl/0语言允许过程的递归调用,它的存储组织采用方法。

a) 静态分块分配b) 动态堆式分配c) 动态栈式分配d) 静态分配。

8.2型文法又被称为文法。

a) 上下文有关b) 上下文无关c) 正规d) 短语。

9.pl/0源程序中的单词“:=和“end”经识别后对应的单词种类分别是。

a) becomes和end b) eql 和endsym c) becomes和endsym d) eql和end

10.若某变量a 在本基本块后不再被继续引用,则称a是。

a) 活跃变量b) 非活跃变量c) 静态变量d) 动态变量。

三、是非题(10 分)

1. 正规式的描述能力强于正规文法的描述能力(f )

2. 变量的待用信息指出了该变量值的后续引用的位置(t )

3. pl/0编译程序的语法分析采用的是自顶向下的**分析方法(f )

4. 为了及时回填有关四元式的转移目标,可对文法作等价改写(t )

5. 句型的句柄定义为该句型中位于最左边的短语(f)

6. 算符文法的句型中不含相邻的非终结符号(t )

7. 一个二义文法所生成的语言一定也是二义的语言(f)

8. 语言:l=可由一个正规文法产生。(f )

9. 由开始符号出发,每步进行归约的方法称为自上而下语法分析方法(t )

10.循环体内的不变运算不一定能提取到循环外执行(t)

四、设计题(第1题10分,第2题5分)

构造一个dfa,接受∑=上由正规式(aa|ab)*(ab) 定义的字符串,给出相应的正规文法。

1.dfa:

2.正规文法:

五、设计题(第1题8分,第2题5分)

对下列基本块b应用dag进行优化,设只有v在基本块后面还要继续引用。

b: t1:= a + b

v:= 2 * t1

t2:= a - b

t3:=t1*t2

v:= t3

t4:= a + b

v= t4 / t3

1.基本块b的dag

2.优化后的基本块b’

六、设计题(15分)

补充完整下列源语句通过语法制导翻译后生成的四元式序列。

源语句:read(a,b);

if (a<10 or b >50 )

while ( a < b) do

begina:=a+1;

b=b-2*a;

end;四元式序列:

1) read(a)

2) read(b)

七.证明题(第1题2分,第2,3题各5分)

设有文法g[s]:s→a a | a a b a→a b | d b→e

1)证明g[s]是一个非ll(1)文法。

2)把g[s]等价改写为ll(1)文法g1[s],并给出证明。

3) 构造题2)中ll(1)文法g1[s]的**分析表:

a b d e #sa

bs′a′八.综合题(每小题5分)

设有文法g[s’]:0) s’→s

1)s→aab

2)a→ba

3) a→b

4) b→d

1. 构造g[s]的lr(0)项目规范族c=,包括go (i,x)

2. 说明g[s]属于哪一种lr文法,构造相应的lr分析表。

状态 a b d # s a b

3. 对输入串abdb# 给出分析过程:

步骤状态符号输入串动作。

# abbd#

2023年编译原理考题 答案

一 选择题 每个选择题 2 分,共 20 分 1 文法 g 产生的 的全体是该文法描述的语言。a 句型 b.终结符集 c.非终结符集 d.句子 2 若文法 g 定义的语言是无限集,则文法必然是 a 递归的 b 前后文无关的 c 二义性的 d 无二义性的 3 chomsky 定义的四种形式语言文法中,...

2023年编译原理期中试题 解答

1 10分 对下列错误信息,请指出可能是编译的哪个阶段 词法分析 语法分析 语义分析 生成 报告的。1 else 没有匹配的if 2 数组下标越界。3 使用的函数没有定义。4 在数 现非数字字符。5 函数调用时实参与形参类型不一致。答案 每小题2分 1 语法分析。3 语义分析。4 词法分析。5 语义...

2019计科编译原理考试模拟题

石河子大学2003 至2004 学年第二学期。编译原理课程试卷d 一 名词解释 2 5分,所有答案均写在答题纸上 1 编译程序2 最右推导 3 素短语 4 文法的二义性 5 算符优先文法。二 填空 每空1分,共16分 1 编译过程划分为语义分析。目标 生成六个阶段,同时还伴有出错处理。两个过程。2 ...