编译原理复习题
一、填空题:
1、编译方式与解释方式的根本区别在于( 是否生成目标代码 )。
2、对编译程序而言,输入数据是( 源程序 ),输出结果是( 目标程序 )。
3、如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两大阶段:(编译阶段 )和( 运行阶段 )。
4、如果编译程序生成的目标程序是汇编语言程序,则源程序的执行分成三个阶段:( 编译阶段)、(汇编阶段)和(运行阶段)。
5、自顶向下语法分析方法会遇到的主要问题有( 回溯  )和( (左递归带来的)无限循环  )。
6、LL(k)分析法中,第一个L的含义是( 从左到右进行分析 ),第二个L的含义是( 每次进行最左推导 ),“k”的含义是(向输入串中查看K个输入符号 )。
7、LL(1)分析法中,第一个L的含义是(从左到右进行分析 ),第二个L的含义是(每次进行最左推导 ),“1”的含义是(向输入串中查看1个输入符号 )。
8、自顶向下语法分析方法的基本思想是:从(识别符号)出发,不断建立( 直接推导 ),试图构造一个推导序列,最终由它推导出与输入符号相同的( 符号串 )。
9、自底向上语法分析方法的基本思想是:从待输入的符号串开始,利用文法的规则步步向上进行(直接归约),试图(归约)到文法的( 识别符号|开始符号 )。
10、LR(0)分析法的名字中,“L”的含义是(从左到右进行分析),“R”的含义是( 采用最右推导的逆过程---最左归约 ),“0”的含义是(向貌似句柄的符号串后查看0个输入符号)。
11、LR(1)分析法的名字中,“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“1”的含义是(向貌似句柄的符号串后查看1个输入符号)。
12、SLR(1)分析法的名字中,“S”的含义是(简单的 ),“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“1”的含义是(向貌似句柄的符号串后查看1个输入符号)。
源程序是指什么程序13、在编译过程中,常见的中间语言形式有(逆波兰表示 )、(三元式 )、(四元式)和(树形表示)。
14、在编译程序中安排中间代码生成的目的是(便于代码优化)和(便于目标程序的移植 )。
15、表达式-a+b*(-c+d)的逆波兰表示为( a-bc-d+*+ )。
16、表达式a+b*(c+d/e)的逆波兰表示为(abcde/+*+ )。
17、表达式a:=a+b*c(d/e)/f的逆波兰表示为( aabcde/*f/+:= )。
18、文法符号的属性有( 继承属性 )和( 综合属性  )两种。
19、一个文法符号的继承属性是通过语法树中它的(兄弟结点与父 )结点的相应文法符号的属性来计算的。
20、一个文法符号的综合属性是通过语法树中它的(子  )结点的属性来计算的。
21、语法制导的编译程序能同时进行( 语法 )分析和( 语义 )分析。
22、编译过程中扫描器所完成的任务是从( 源程序 )中识别出一个个具有( 独立语法意义的单词  )。
23、确定的有穷自动机是一个( 五元组 ),通常表示为( DFA=(K,∑,M,S,Z))。
24、已知文法G(E):
            E->T|E+T|E-T
            T->F|T*F|T/F
            F->(E)|i
    该文法的开始符号是( E  ),终结符号集合VT是( { +,-,*./,(,),i }  ),非终结符号集合VN是( { E,T,F } ),句型T+T*F+i的短语有( T+T*F+I  ,T*F第一个T,i)。
25、已知文法G(E):
            E->T|E+T|E-T
            T->F|T*F|T/F
            F->(E)|i
    改写该文法以消除直接左递归,改写后的文法为:E->(+TE‘|-TE‘|ε ),T->( FT‘ ),(T‘->  *FT‘|ε),F->( (E)|  i  )。