司法考试

哈尔滨工程大学2008年操作系统期末考试试题卷

| 点击:

【www.xhbeng.com--司法考试】

哈尔滨工程大学本科生考试试卷 ( 2007-2008 年   第二   学期) 课程编号:06020060   课程名称: 编译原理 (A卷)  一、选择(20分,每空2
1、以下对编译器(Compiler)描述错误的是(                )。
A、 编译器的输入是由源语言编写的源程序,输出是由目标语言编写的目标程序。
B、编译器是一个执行程序而不是一个转换程序。
C、编译器和编辑器以及其它程序经常被捆绑成一个与用户交互的开发环境(IDE)中。
D、 按照编译器扫描的遍数,可把编译器分为一遍扫描和多遍扫描的编译器。
2、把汇编语言程序翻译成机器可执行的目标程序的工作是由(         )完成的。
       A、编译器                              B、解释器
       C、汇编器                              D、预处理器
3、编译器的工作可分为多个阶段,词法分析、语法分析、语义分析阶段的结果分别是(                   )。
A、  分析树、语法树、语义树;
B、分析树、语法树、注释树;
C、记号序列、语法树、语义树;
D、  记号序列、分析树、注释树。
4、以下对于语法二义性的描述正确的是(                 )。
A、  如果文法G的某个句子存在两棵或者两棵以上的语法树(或分析树),则称该文法是存在二义性的;
B、   如果文法G的某个文法存在两个或者两个以上的句子符合该文法规则,则称该文法是存在二义性的;
C、   消除文法二义性只能对文法进行修改,别无他法;
D、  能够通过算法判别文法是否存在二义性。
5、以下对有穷自动机的图形表示描述错误的是(                   )。
A、  用带箭头的线表示一个状态到另一个状态的转换;
B、   用圆圈表示状态;
C、   用双线边界的圆圈表示接受状态;
D、  一个有穷自动机里只能有唯一的一个接受状态。
6、对于给定的一个非确定性有限自动机(NFA),以下正确的是(                 )。
A.        不存在与之等价的DFA。
B.         存在一个唯一等价的DFA。
C.         存在一个唯一的具有最少状态数的等价DFA。
D.        存在等价DFA,但具有最少状态数的DFA不唯一。
7、对代码生成阶段(Code Generation)描述正确的是(                    )
A.        不仅要考虑源程序的特征,而且要考虑目标机的硬件细节;
B.         只需考虑目标机的硬件细节;
C.         只需考虑源程序的特征即可;
D.        与源程序和目标机的硬件细节无关。
8、高级语言编译程序常用的语法分析方法中,递归下降分析法属于(           )分析方法。
       A、自左至右                            B.自顶向下 
       C、自底向上                            D.自右向左
9、编译过程中,语法分析器的任务是(                     )。
①分析单词是怎样构成的
②分析单词串是如何构成语句和说明的
③分析语句和说明是如何构成程序的
④分析程序的结构
       A、②③                    B、②③④          C、④      D、①②③④
10、  在编译方法中,动态存储分配的含义是(                 )。
       A、在运行阶段对源程序中的量进行分配
       B、在编译阶段对源程序中的量进行分配
       C、在编译阶段对源程序中的量进行分配,在运行时这些量的地址可以根据需要改变
       D、以上都不正确
 
二、填空(共10分,每空1分)
1、LL(1)分析方法是这样得名的:第一个“L”指的是________________,第二个“L”指的是_____________,括号中的数字1指的是____________________。
2、文法根据限定条件分为四种文法:0型文法、1型文法、2型文法、3型文法。其中2型文法又叫做         文法,3型文法又叫做         文法。
3、语法分析器的输入是_______________,其输出是_______________。
4、对于数据空间的存贮分配,FORTRAN采用______________策略。
5、高级程序设计语言源程序有两种执行方式,即___________和___________。
 
三、简答题(每题4分,共20分)
1、什么是编译器?
2、什么是遍?
3、什么是扫描器?扫描器的功能是什么?
4、请写出下面各个字符串的正则表达式:
(1)          以a开头或者以b结尾的小写字母串;
(2)          以字母开头,后面是数字或字母的符号串(即标识符);
5、请写出a/b-c*(d+e)的后缀表示和四元组表示。
四、10分)已知正则表达式a(ba)*
(1)构造该正则表达式所对应的NFA;
(2)由NFA构造DFA;
(3)对DFA进行最小化。
五、10分)已知文法G[S]:
              S::=a | T
              T::=TS | S
       给出句子(a,(a,a))的最左推导并画出语法树。
六、(10分)设有文法G[Z]:
              Z::=A
              A::=abB
              B::=Aab
(1)若采用自顶向下分析方法,对此文法来说,在分析过程中能否避免二义性?为什么?
(2)分析符号串(bbaabab)是否为此文法的句子。
七、(20分)已知文法G[A]为
    A::=aABe | a
B::=Bb | d
(1) 通过消除左递归和提取左因子(回溯),给出与G[A]等价的文法G’[A];
(2) 计算文法G’[A]非终结符的First集合和Follow集合;
(3) 判断文法G’[A]是否为LL(1)文法;
(4) 如果文法G’[A]是LL(1)文法,构造G’[A]的分析表;
(5) 给出输入串aade的分析过程。

本文来源:http://www.xhbeng.com/zigekaoshi/64263.html