编译原理-第一、二章测验(答案)(共1页).doc
精选优质文档-倾情为你奉上编译原理 第一、二章单元测验(答案)姓名 学号 班级 一 填空(40分)1. 编译系统一般可以分为 词法分析 语法分析 语义分析及中间代码生成 优化处理 目标代码生成 等5大部分组成,其中 词法分析 语法分析 目标代码生成 是每个编译程序必不可少的,而语义分析及中间代码生成 优化处理 则是可有可无的。这5个部分在工作过程中都会涉及到 表格处理 出错处理 2. 中间代码生成所依据的是语言的 语义 规则3. 在使用高级语言编程时,首先可以通过编译程序发现源程序的全部 语法 错误和 语义 错误。4. 由于受到具体机器主存容量限制,编译程序几个阶段的工作往往被组合成 遍 。5. 编译程序绝大多数时间花在 管理表格/扫描 上。6. 语法分析的依据是 语法/语义 规则。7. 高级语言源程序执行有两种方式:即 编译 和 解释 。8. 编译程序各阶段的工作往往是 穿插 进行的。9. 文法G产生的 句子 的全体构成该文法所描述的语言。10. 乔姆斯基定义的4种形式的文法中,0型又称 短语结构文法 可由 图灵机 识别, 1型又称 前后文(或上下文)有关文法 可由 线性限界自动机 识别,2型又称 前后文(或上下文)无关文法 可由 非确定下推自动机 识别,3型包括 左线性文法 和 右线性文法 ,可由 有限自动机 识别。11. 最左推导是指 对于一个推导序列中的每个直接推导,被替换的总是当前符号串中的最左非终结符号。12. 产生式是用于定义 语法范畴 的一种书写规则。13. 高级语言经过编译生成的语言一般是 机器语言 和 汇编语言 。14. 句柄是指当前句型的 最左直接短语 。15. 简单地说,文法中无用符号和无用产生式的删除必须满足:1.是否被用到过 2. 可否推出终结符号 。16. 规范推导是指 最右推导 ,规范归约是指 最左归约 ,二者互为逆过程。二 写一个语言,使其语言是奇数集,且每个奇数不以0开头。 (20分)解法1: G = (S,A,0,1,2,3,4,5,6,7,8,9,P,S) P: Sd1Ad3 Ad2Ad3 d1代表1-9的数字,d2代表0-9的数字, d3代表1,3,5,7,9中的任意一个。解法2:G = ( N,A,B,C,D,0,1,2,3,4,5,6,7,8,9,P,S)P: NABB AACD B13579 D2468B C0D三 证明下列文法是二义性文法: SiSeSiSi (20分)解:1. 不同最左(右)推导推导出相同的符号串 2. 对同一符号串有两颗不同语法树 (答案多样化)四 写出下面语言的上下文无关文法: (20分)解: 1. G1:NSSA SaSbab A cAc (或者A ccA) 2. G1:NSSA SaSbab A Ac(或者A cA) 再消除,得到 答案1专心-专注-专业