【www.lexiangwang.net--司法考试】

哈尔滨工程大学本科生考试试卷 ( 2007-2008 年   第二   学期)   课程编号:06020060   课程名称: 编译原理 (B卷)    一、 是非题(下列各题你认为正确的,请在题干的括号内打“√”,错的打“×”。 每题1分,共 5分) l、一个LL(1)文法一定是无二义的。………………………………………… (   ) 2、逆波兰式亦称前缀式。………………………………………………………(  ) 3、目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。………(   ) 4、正规文法产生的语言都可以用上下文无关文法来描述。…………………(   ) 5、一张转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。       ………………………………………………………………………………(   )   二、填空题(每题2分,共20分) 1、语法分析是依据语言的(     )规则进行的,中间代码产生是依据语言的 (     )规进行的。 2、程序语言的单词符号一般可以分为 (      )等等。 3、语法分析器的输入是(     ),其输出是(     )。  4、所谓自上而下分析法是指(      )。 5、如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是(      )。 6、对于文法G,仅含终结符号的句型称为(     )。 7、逆波兰式ab+c+d*e-所表达的表达式为(      )。 8、一个名字的属性包括(      )和(      )。 9、对于数据空间的存贮分配, FORTRAN采用(      )策略, PASCAL采用(      )策略。 10、所谓优化是指(      )。   三、名词解释题(每题2分,共10分)   l、词法分析器:               2、语法:              3、最右推导:               4、语法制导翻译:              5、基本块:                  四、简述题(每题4分,共24分) l、考虑下面的程序:       …………     Var i: integer;         a:array[1••2] of integer;   procedure  Q(b);         Var   b: integer;         Begin            i:=1;b:=b+2;             i =2;b:=b+3         End;     Begin         a[1]:=5; a[2]:=6;         i:= 1;         Q(a[i]); print(a[l],a[2])     End.     试问,若参数传递的方式分别采用传地址和传值时,程序执行后输出 a[l], a[2]的值是什么?   2、画出识别pascal中实常数(可带正负号,但不含指数部分)的状态转换图。   3、已知文法G(S):    S→a |(A)    T→T,S | S 的优先关系如下:     4、写出表达式(a+b)/(a-b)-(a+b*c)的三元序列及四元序列。 5、符号表的作用是什么?符号表的查找和整理技术有哪几种? 6、何谓DISPLAY表?其作用是什么?   五、计算题(41分)   1、写一个文法使其语言为偶数集,且每个偶数不以0开头。(5分)   2、已知文法G(S):     S→a |(T)    T→T,S|S (1)给出句子(a,(a,a))的最左推导并画出语法树; (2)给出句型((T,s),a )的短语、直接短语、句柄。(8分)   3、把语句    if x>0 y>0 then z:=x+y                 else Begin                       x:=x+2                       y:=y+3                      End; 翻译成四元式序列。(6分)   4、设某语言的for语句的形式为       for i:=E(1) to E(2) do S 其语义解释为         i:=E(1)         LIMIT:=E(2)   again: if i<=LIMIT then           Begin            S;            i:=i+1            goto again           End;   (1)写出适合语法制导翻译的产生式; (2)写出每个产生式对应的语义动作。(6分)   5、设文法G(S):    S→S+aF | aF |+aF    F→*aF | *a (1)消除左递归和回溯; (2)构造相应的First和Follow集合; (3)构造预测分析表。(10分)      6、对以下基本块    T1=2    T2:=A-B    T3=A+B    T4=T2*T3    T5=3*T1    T6=A-B    T:=A+B    T7=T6+L    T8=T5*4    M:=T8+T7    L:=M (1)画出DAG图; (2)假设只有L在基本块出口之后还被引用,请写出优化后的四元式序列。(6分)

本文来源:https://www.lexiangwang.net/zigekaoshi/64265.html