2008年05级编译原理B卷.docVIP

  • 1
  • 0
  • 约2.22千字
  • 约 2页
  • 2018-06-25 发布于河南
  • 举报
2008年05级编译原理B卷

哈尔滨工程大学本科生考试试卷 ( 2007-2008 年 第二 学期) 课程编号 课程名称: 编译原理 (B卷) 一、 是非题(下列各题你认为正确的,请在题干的括号内打“√”,错的打“×”。 每题1分,共 5分) l、一个LL()文法一定是无二义的。………………………………………… (? ) 2、逆波兰式亦称前缀式。………………………………………………………( ) 3、目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。………(? ) 4、正规文法产生的语言都可以用上下文无关文法来描述。…………………( ? ) 5、一张转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。 ????? ………………………………………………………………………………( ) 二、填空题(每题2分,共分) 1、语法分析是依据语言的(???? )规则进行的,中间代码产生是依据语言的 (???? )规进行的。 2、程序语言的单词符号一般可以分为 (????? )等等。 3、语法分析器的输入是(???? ),其输出是(?? ? )。 4、所谓自上而下分析法是指(????? )。 5、如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是( ???? )。 6、对于文法G,仅含终结符号的句型称为(???? )。 7、逆波兰式abc+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:=b2; ????????????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表?其作用是什么? 五、计算题(分) 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)构造相应的F和Follow集合; (3)构造预测分析表。(10分) 6、对以下基本块 ?? T1=2 ?? T2:=AB ?? T3=A+B ?? T4=T2*T3 ?? T5=3*T1 ?? T6=

文档评论(0)

1亿VIP精品文档

相关文档