
苏州大学 编译原理 课程试卷(a卷)共4页.doc
2页1编译原理课程练习题编译原理课程练习题 共 5 页 一.选择题: 1.词法分析的作用是( ) A.识别出单词 B.识别出保留字 C.分析源程序的语法是否合法 D.识别出标识符 2.( )不是自下而上(自底向上)的分析方法 A.LR(0)分析法 B.SLR 分析法 C.算符优先分析法 D.LL(1)分析法 3.乔姆斯基的 3 型文法对应的自动机是( ) A.图灵机 B.线性界限自动机 C.下推自动机 D.有穷自动机 4.下面说法( )错误的 A.句型是从识别(开始)符号推导出来的符号串 B.由终结符号组成的句型是句子 C.句子是句型的特例 D.句型中必须含有非终结符号 5.( )描述的是语言{abn|n≥0} A.ab* B.a|b C.a*|b* D.(a*b*)* 6.( )描述的是语言{ambn|m,n≥0} E.ab* B. a|b C. a|b* D. a*b* 7.下列四种方式中, ( )能完成对高级语言源程序的翻译 A.汇编 B.反汇编 C.编译 D.预处理 8.下面关于符号表的说法正确的是( ) A.一个编译程序只能使用一个符号表 B.有序表的建表速度相对较快 C.编译程序可以没有符号表 D.符号表的主重要作用之一就是收集单词的属性 9.对于下面文法( )是 LL(1)文法 A.G1:E→E+ E | E* E |(E) | i B.G2:S→cSc| aSa |b C.G3:S→a |(T) T→T,S | S D.G4:N→ND | D D→0 | 1 | 1010.对于下面文法( )是 LL(1)文法 E.G1:E→E+ E | i F.G2:S→aSa |b G.G3:S→Sb | a H.G4:A→aA |ab 11.代码优化的主要目的是( ) A.提高目标程序运行时的时间和空间效率 B.提高目标程序的易读性 C.提高目标程序的重用性 D.获得最短的目标代码 12.( ) 所需的空间是采用静态存储分配的 A.局部变量 B.用户申请的临时单元 C.函数或过程的形式参数 D.全局变量 13.不属于编译的阶段是( ) A. 中间语言 B. 语义分析 C. 语法分析 D. 中间代码优化 属于编译的工作阶段是( ) E.语法分析 F.语言工具的选择 G.中间语言设计 H.目标机指令系统分析 14.( )是自顶向下的分析方法 A.LR(1)分析法 B.SLR(1)分析法 C.LALR(1)分析法 D.递归子程序分析法 15.大部分与语法分析有关文法属于、 ( ) A.0 型文法 B.1 型文法 C.2 型文法 D.3 型文法 16.与词法分析有关文法近似于( ) A.0 型文法 B.1 型文法 C.2 型文法 D.3 型文法17.下面关于语言和文法的描述( )是错误的 A.文法是有限的但描述的语言可以是无限的 D.若语言是无限(穷)的,则文法的规则必须是无限(穷)的 C.若两文法描述的语言相同则这两文法等价 D.语言是句子的集合 18.设有文法 G[S]:S→aSb|d 下列( )是该文法句子 A. ababd C. adbb B. adb D. aadb 19.下列四种程序中( )是翻译程序 A. C#语言程序 B.编译程序 C.目标程序 D.源程序 20.设计符号表时,最后考虑的因素是( ) A.登记项的格式 B.符号表的查找算法 C.编写符号表的语言 D.符号表的组织 21.下面关于符号表的说法正确的是( ) A.一个编译程序只能使用一个符号表 B.无序表的查找速度相对较快 C.编译程序可以没有符号表 D.符号表的主重要作用之一就是收集单词的属性 22.符号表的主要作用之一是( ) E.统计单词个数 F.统计源源程序长度 G.收集有关单词属性 H.统计出错次数 23.下面对于 LL(1)分析法不正确的描述是( ) A.LL(1)分析法最多只需超前扫描 1 个符号 B.LL(1)分析法是基于归约的分析法 C.LL(1)分析法是自顶向下的的分析法 D.LL(1)分析法又叫预测分析法 24.代码优化主要对 ( )进行的 A.源代码 B.目标代码 C.中间代码 D.二进制代码 25.下面说法不正确的是( ) A.句子是句型的特例 B.文法的二义性与语言的二义性是同一个概念 C.一个语言所包含的句子是有穷的则称该语言为有穷语言 D.存在递归规则的文法称为递归文法 二.填空: 1.源程序翻译采用编译方式与解释方式的主要区别是 。
2.在编译程序中把与源语言无关只依赖于目标机器部分称为 3.编译程序从研制角度可分为 、 两部分 4.在编译程序中把与源语言有关而不依赖于目标机器部分称为 5.编译程序典型的工作过程可分成 、 、 、 、五个阶段 6.一个文法定义为四元组(Vn,Vt,P,S),其中 P 为 7.一个文法定义为四元组(Vn,Vt,P,S),其中 S 为 8.文法 G[S]:S→aSb|c 的语言是 9.文法 G[S]:S→Aa A→Ab |a 的语言是 . 10.文法 G[S]:S→aSb|c 的语言是 11.语言{anban|n≥0}的二型文法是 12.语言{ambn|m,n≥1}的二型文法是 13.文法中引入递归文法的好处是 。
14.简化了的文法是去除了 规则和 规则后得到的文法 15.执行(运行)时的内存分配方式分为 、 16.优化从对程序的作用范围和规模上可分为 、 17.对于形如 A→α•aβ 的 LR(0)项目,其中 α、β∈V*,a∈Vt,则该项目称为 18.LALR(1)分析法是通过对 LR(1)项目集规范族进行 来缩小分析表的 19.动态存储分配分为 、 20.规范推导就是 推导 21.有害规则是指形如 的规则 22.有穷自动机可用四元组(函数),表格(矩阵)和 这三种形式来定义 23.目前人们常用语法分析程序生成器是由 BELL 实验室提出的 24.目前人们常用词法分析程序生成器是由 BELL 实验室提出的 21.证明文法 G[S]:S→AB A→Ab|b B→Bb|b 是二义性的。
2.试证明文法 G[N]:N→ND|D D→0|1|2|3|4|5|6|7|8|9|10 是二义性的 3.已知:G[S]:S→aAB A→Aa|Ba|a B→bd 试指出句子 abdaabd 的短语、简单 短语、和句柄 4.已知:G[S]:S→Ac A→aAb|B B→bd 试指出句子 aabdbbc 的短语、简单短语、 和句柄 5.设有文法 G[S]:S→ca|aBb B→aSb|a 试指出句子 aacabb 的短语、简单短语和 句柄 6.写出文法 G[S]: S→aA A→bB B→a|b 的相应的递归子程序(设 get_w()为 读一单词到 w 和 error()出错处理的函数已存在) 7.写出文法:G[E]: E→bA A→aB|d B→(E) 的相应的递归子程序(设 get_w()为读一单词到 w 和 error()出错处理的函数已存在) 8.设有文法 G[S]:S→AB B →bAB|a A→(S)|b 试画出该文法的 LL(1)分析 表 9.设 G[S]: S→ 0LT T→aL|0 L→0L|1 L|a 试构造相应的预测 LL(1)分析表。
10.试简述典型的编译程序的逻辑结构(可图示说明) 11.设 G[S]: S→ bBT T→aB|b B→bB|c B|a 试构造相应的预测分析表a b c #SBT 三.设某高级语言的 FOR 语句的文法为:G[S]: S→FOR i:=E1 TO E2 STEP E3 DO S; (1)试设计出一种目标结构(可图示或用伪代码) (2)给出下列语句的四元式序列 FOR i=a+b TO c+d STEP x+1 DO x=x+2 四.设某高级语言的 if 语句的文法为:G[S]: S→if E then S1 ︳if E then S1 else S2 (1)试设计出一种目标结构(可图示或用伪代码).(2)给出下列语句的四元式序列if a>b then x:=x-1 else y:=y+2 五.试构造出下列文法的 SLR(1 的分析表 G[S]: S→A|B A→aA|b B→aB|c 六.设有文法 G[S]: S→a(L) L→L ba L→a 试构造其 SLR 分析表 七.设某高级语言的 FOR 语句的文法为:G[S]: S→FOR i:=E1 TO E2 STEP E3 DO S; (1)试设计出一种目标结构(可图示或用伪代码) (2)给出下列语句的四元式序列。
FOR i=1 TO a+d STEP c-d DO x=c+d。
