投递文章投递文章 投稿指南 RSS订阅RSS订阅

哈工大考研专业课之编译原理模拟试题

来源:iT堂整理 发布时间:2008-10-10 收藏 投稿 字体:【

编译原理模拟试题

一、是非题(下列各题,你认为正确的,请在题干的括号内打“ √”,错的打“×”)

  1、算符优先关系表不一定存在对应的优先函数。(    )

  2、数组元素的地址计算与数组的存储方式有关。(    )

  3、仅考虑一个基本块,不能确定一个赋值是否真是无用的。(    )

  4、每个文法都能改写为LL(1)文法。(    )

  5、对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。(    )

二、填空题

  1、从功能上说,程序语言的语句大体可分为(    )语句和(    )语句两大类。

  2、扫描器的任务是从(    )中识别出一个个(    )。

  3、所谓最右推导是指:(    )。

  4、语法分析最常用的两类方法是(    )和(    )分析法。

  5、一个上下文无关文法所含四个组成部分是(    )。

  6、所谓语法制导翻译方法是(    )。

  7、符号表中的信息栏中登记了每个名字的有关的性质,如(    )等等。

  8、一个过程相应的DISPLAY表的内容为(    )。

  9、常用的两种动态存贮分配办法是(    )动态分配和(    )动态分配。

  10、产生式是用于定义(    )的一种书写规则。

三、名词解释

  1、遍

  2、无环路有向图(DAG)

  3、语法分析

  4、短语

  5、后缀式

四、简述题

  1、考虑下面程序

  …………

  Var a:integer;

  Procedure S(X);
   Var X:integer;

   Begin

    a:=a+1;

    X:=a+X

   End;

  Begin

    a:=5;

    S(a);

    Print(a)

  End.

  试问:若参数传递方式分别采取传名和传值时,程序执行后输出a的值是什么?

  2、画出C++中实数(不带正负号,可带指数部分)的状态转换图。

  3、写出表达式(a+b*c)/(a+b)-d的逆波兰表示及三元式序列。

4、已知文法G(S)

  S→a|∧|(T)

  T→T,S|S

  写出句子((a,a),a)的规范归约过程及每一步的句柄。

  5、何谓优化?按所涉及的程序范围可分为哪几级优化?

  6、目标代码有哪几种形式?生成目标代码时通常应考虑哪几个问题?

五、计算题

  1、写一个文法,使其语言是奇数集,且每个奇数不以0开头。

  2、设文法G(S):

  S→(L)|a S|a

    L→L,S|S

  (1)消除左递归和回溯;

  (2)计算每个非终结符的FIRST和FOLLOW;

  (3)构造预测分析表。

3、While a>0 ∨ b<0 do

  Begin

    X:=X+1;

    if a>0 then a:=a-1

        else b:=b+1

  End;

  翻译成四元式序列。

  4、已知文法G(E)

  E→T|E+T

  T→F|T * F

  F→(E)|I

  (1)给出句型(T * F+i)的最右推导及画出语法树;

  (2)给出句型(T * F+i)的短语、素短语。

5、设布尔表达式的文法为

  E → E(1)∨E(2)

  E → E(1)∧ E(2)

  E → I

  假定它们将用于条件控制语句中,请

  (1)改写文法,使之适合进行语法制导翻译和实现回填;

  (2)写出改写后的短个产生式的语义动作。

  6、设有基本块

  T1:=2

  T2:=10/T

  T3:=S-R

  T4:=S+R

  A:=T2 * T4

  B:A

  T5:=S+R

  T6:=T3 * T5

  B:=T6

  (1)画出DAG图;

  (2)假设基本块出口时只有A,B还被引用,请写出优化后的四元序列。

顶一下
(0)
0%
踩一下
(1)
100%
本文Tags:
  • 表情:
  •    
  • 评价:
用户名: 密码: 匿名 注册
最新评论 查看所有评论
About iTtang - 联系我们  - 专题列表 - 友情链接  -  高级搜索  -  帮助中心  -  您的意见