编译原理试题

发布 2024-04-16 19:25:10 阅读 5816

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

1、 乔姆斯基把文法分成___种类型, 在编译原理中用来描述程序设计语言词法结构的是___文法, 用来描述程序设计语言语法结构的是___文法。

2、 一个上下文无关文法g包括四个组成部分:一组终结符,一组___一个开始符号,以及一组。

3、 自上而下语法分析法会遇到的主要问题有___和___

4、 最右推导也称最右推导的逆过程称为最左规约, 也称。

5、 一个文法符号的___属性是通过语法树中它的父结点和/或成兄弟节点的相应文法符号的属性来计算的,而___属性是通过语法树中它的子结点的属性之值来计算的。

6、 常用的两种动态存贮分配办法是___动态分配和___动态分配。

7、 在pascal语言中, 为了在过程的嵌套调用过程中实现对局部名字的访问, 可以采用___和活动记录,或___和活动记录的方式。

二、简答题(每题5分,共15分)

1、请画出编译程序的总框图。

2、请给出表达式a+b*(c+d/e)的后缀式,并将其表示成三元式和四元式序列。

3、设文法g(s):

s→(a) |a

a→ a + s | s

构造各非终结符的firstvt集合和lastvt集合。

四:(10分)将下列语句翻译成四元式序列(假定地址从100开始)。

while(a>0 or b<0)do

if a>0 then a:= a-1

else b:= b+1

五:(15分)构造一个dfa,它接受σ=上所有满足如下条件的字符串:每个1都有0直接跟在右边。

六、(10分)有文法g[s]:

s →baa →bs|d

b →aa|bs|c

(1)证明文法g是ll(1)文法;

(2)构造ll(1)分析表。

七、(10分)试对下基本块:

b:=3d:=a+c

e:=a*c

f:=d+e

g:=b*f

h:=a+c

i:=a*c

j:=h+i

k:=b*5

l:=k+j

m:=l1)画出该基本块的dag图;

2)假如只有l在基本块后面还要被引用,写出优化后的四元式序列;

编译原理试题

语法分析 自顶向下的分析。重点与难点。重点 自顶向下分析的基本思想,分析器总体结构,分析表的构造,递归下降分析法基本思想,简单算术表达式的递归下降分析器。难点 first和follow集的求法,对它们的理解以及在构造ll 1 分析表时的使用。递归子程序法中如何体现分析的结果。基本要求。掌握语法分析 ...

编译原理试题

编译原理模拟试题。班级姓名学号。1 20分 写出字母表 上语言l 的正规式,并画出接受该语言的最简dfa。2.10分 计算文法g m 的每个非终结符的first和follow集合,并判断该文法是否是ll 1 的,请说明理由。g mm tb t ba b db et d d 3.10分 写一个文法使其...

编译原理试题

东南大学。一 文法g1 e et t t tf f f fp p p e i1 试证明符号串tet i 是g1的一个句型 要求画出语法树 2 写出该句型的所有短语,简单短句和句柄。三 1 试写出一个上下文无关文法g3,它能产生配对的圆括号串 例如等,甚至包含0对括号 2 使用文法g3给出输入串 的自...