编译原理试题汇总编译原理期末试题8套含答案大题集 联系客服

发布时间 : 星期日 文章编译原理试题汇总编译原理期末试题8套含答案大题集更新完毕开始阅读4ceca5d9df88d0d233d4b14e852458fb770b3804

17.在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度。 ( × ) 18 .数组元素的地址计算与数组的存储方式有关。 ( × ) 19 .编译程序与具体的机器有关,与具体的语言无关。 ( × ) 20.递归下降分析法是自顶向上分析方法。( √ )

21.产生式是用于定义词法成分 的一种书写规则。 ( × ) 22.LR 法是自顶向下语法分析方法。 (×)

23.在 SLR ( 1 )分析法的名称中,S 的含义是简单的。( √) 24 .综合属性是用于 “ 自上而下 ” 传递信息。( × )

25.符号表中的信息栏中登记了每个名字的 属性和特征等有关信息 ,如类型、种属、所占 单元大小、地址等等。 ( × )

26.程序语言的语言处理程序是一种应用软件。 ( × ) 27.一个 LL(l)文法一定是无二义的。 ( × ) 28 .正规文法产生的语言都可以用上下文无关文法来描述。 ( × )

29.一张转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。 ( √) 30 .目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。 ( × ) 31.逆波兰法表示的表达式亦称后缀式 。 ( √ )

32.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的。 ( √ ) 33.数组元素的地址计算与数组的存储方式有关。( × )

34.对于数据空间的存贮分配, FORTRAN 采用动态贮存分配策略。 ( × ) 35.编译程序是对高级语言程序的解释执行。( × )

36.一个有限状态自动机中,有且仅有一个唯一的终态。( × )

37.语法分析时必须先消除文法中的左递归 。 ( × ) 38.LR 分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。 ( √ ) 39.逆波兰表示法表示表达式时无须使用括号。 ( √ ) 40.静态数组的存储空间可以在编译时确定。 ( × )

41.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。( × ) 42.两个正规集相等的必要条件是他们对应的正规式等价。( × ) 43.一个语义子程序描述了一个文法所对应的翻译工作。 ( × ) 44.r 和 s 分别是正规式,则有 L(r|s)=L(r)L(s)。( × ) 45.确定的的自动机以及不确定的自动机都能正确地识别正集(√) 46 .分析作为单独的一遍来处理较好。 ( × ) 47. LR 分析器的任务就是产生 LR 分析表。 (√ ) 48.归约和规范推导是互逆的两个过程。 (√ )

49.同心集的合并有可能产生新的“移进”/ “归约” 冲突 (×) 50.lR 分析技术无法适用二义文法。 ( × )

51树形表示和四元式不便于优化,而三元式和间接三元式则便于优化。 ( × ) 52序中的表达式语句在语义翻译时不需要回填技术。 ( √)

三、填空

1.编译程序的工作过程一般可以划分为词法分析,语法分析,语义分析,中间代码 生成,代码优化等几个基本阶段,同时还会伴有__表格处理___和 ___出错处理__。 2.若源程序是用高级语言编写的,___目标程序__是机器语言程序或汇编程序, 则其翻译程序称为 ___编译程序__ 。

3.编译方式与解释方式的根本区别在于__是否生成目标代码___。

4.对编译程序而言,输入数据是___源程序__, 输出结果是__目标程序___。

5 / 110

5.产生式是用于定义___语法成分__的一种书写规则。

6.语法分析最常用的两类方法是___自上而下__和___自下而上__分析法

7.设 G 是一个给定的文法,S 是文法的开始符号,如果 S->x( 其中 x∈VT*), 则称 x 是文 法的一个__句子___。

8.递归下降法不允许任一非终极符是直接__左___递归的。

9.自顶向下的语法分析方法的基本思想是:从文法的__开始符号____开始,根据给定的输 入串并按照文法的产生式一步一步的向下进行__直接推导____,试图推导出文法的__句子

____,使之与给定的输入串___匹配___。

10.自底向上的语法分析方法的基本思想是:从输入串入手,利用文法的产生式一步一步地 向上进行___直接归约__ ,力求归约到文法的__开始符号___。 11常用的参数传递方式有___传地址__,传值和传名。

12.在使用高级语言编程时,首先可通过编译程序发现源程序的全部__语法___错误和语义的部分错误。 13___句柄_。 .一个句型中的最左简单短语称为该句型的

14.对于文法的每个产生式都配备了一组属性的计算规则,称为 __语义规则___ 。

15.一个典型的编译程序中,不仅包括__词法分析___、__语法分析___、__中间代码生成___、 代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理。

16. 从功能上说,程序语言的语句大体可分为__执行性___语句和__说明性___语句两大类。

17. 产生式是用于定义__语法范畴___的一种书写规则。

18.语法分析是依据语言的__语法___规则进行的,中间代码产生是依据语言的__语义___规 进行的。

19.语法分析器的输入是__单词符号串___,其输出是__语法单位___ 。

20.产生式是用于定义___语法成分__的一种书写规则。

21.逆波兰式 ab+c+ d*e- 所表达的表达式为__(a+b+c)*d-e___ 。

22.语法分析最常用的两类方法是__自上而下___和__自下而上___分析法。

23.计算机执行用高级语言编写的程序主要有两种途径:___解释__和__编译___。

24.扫描器是__词法分析器___,它接受输入的__源程序___,对源程序进行___词法分析__ 并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。 25 .自上而下分析法采用___移进__、归约、错误处理、___接受__等四种操作。 26.一个 LR 分析器包括两部分:一个总控程序和___一张分析表_。 27.后缀式 abc-/所代表的表达式是___a/(b-c)__。

28.局部优化是在__基本块___范围内进行的一种优化。

29.词法分析基于__正则___文法进行,即识别的单词是该类文法的句子。

30.语法分析基于__上下文无关___文法进行,即识别的是该类文法的句子。语法分析的有效 工具是__语法树___。

31.分析句型时,应用算符优先分析技术时,每步被直接归约的是__最左素短语___,而应用 LR 分析技术时,每步被直接归约的是___句柄__。

32.语义分析阶段所生成的与源程序等价的中间表示形式可以有__逆波兰___、___三元式表示__与___四元式表示__等。

33.按 Chomsky 分类法,文法按照___规则定义的形式__进行分类。

34.一个文法能用有穷多个规则描述无穷的符号串集合(语言)是因为文法中存在有___递归 __定义的规则。

6 / 110

35.一个名字的属性包括__类型___和__作用域___。

四、综合题

1. 已知文法 G(E)

E →T|E+T T→F|T *F F →(E)|i

(1)给出句型(T *F+i)的最右推导;

(2)给出句型(T *F+i)的短语、简单短语、句柄、素短语、最左素短语。 解:

(1) 最右推导:E ->T->F->(E)->(E + T)->(E + F)->(E + i)->(T+i)->(T*F+i) (2) 短语:(T*F+i) ,T*F+i ,T*F,i 简单短语:T*F,i 句柄:T*F

素短语:T*F,i 最左素短语:T*F

2. 构造正规式 1(0|1)*101 相应的 DFA 。 解:先构造 NFA :

确定化:

重新命名,令 AB 为 B、AC 为 C、ABY 为 D 得:

7 / 110

所以,可得 DFA 为:

3. 文法: S->MH|a H ->LSo| ε K ->dML| ε L ->eHf M->K|bLM

判断 G 是否为 LL(1) 文法,如果是,构造 LL(1) 分析表。 解:各符号的 FIRST 集和 FOLLOW集为:

各产生式SELECT集为: S->MH S->a H ->LSo H ->ε K ->dML K ->ε L ->eHf M->K M-> bLM 预测分析表

SELECT {d,b,e,#,o} {a} {e} {#,f,o} {d} {e,#,o} {e} {d,e,#,o} {b}

8 / 110