编译原理复习题 一、填空题: 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+...