编译原理复习与期末必考试题.pdfVIP

  • 4
  • 0
  • 约2.72万字
  • 约 18页
  • 2021-10-10 发布于湖南
  • 举报
第一章: 1.编译程序的步骤和任务: 1) 词法分析:从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进 行扫描和分解,从而识别出一个个单词。 2 ) 语法分析:是在词法分析基础上将单词序列分解成各类语法短语 (比如程序、语句、 表达式等) ,通过语法分析确定整个输入串是否构成一个语法上正确的程序。 3) 语义分析:是审查源程序有无语义错误,为代码生成阶段收集类型信息。 4 ) 中间代码产生:将源程序变成一种易于翻译成目标代码的内部表示形式。 5) 代码优化:对前阶段生成的中间代码进行变换或改造,使生成的目标代码更为高 效 6) 目标代码生成:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令 代码或汇编指令代码。 2. 前端和后端的概念,试问前端通常包括那些阶段,后端包括那些阶段? 答: 前端只依赖于源语言,与目标机无关 。编译程序的前端通常包括词法分析程序、语法 分析程序、语义分析程序、中间代码生成程序及相关的 表格管理程序和出错处理程序 。后 端 是指编译器中 依赖于目标机器的部分 , 只与中间代码有关 。通常包括目标代码生成程序、代 码优化程序以及相关的表格管理程序和出错处理程序。 遍( PASS):对输入文件(源程序或其等价的中间语言程序)从头到尾扫视,完成预定处理 的过程。 一个多遍的编译程序较之一遍的编译程序可能少占内存,逻辑结构可能清晰些,但效率相 对可能差点 3. 程序的正确与否 :结构上的语法规则,语义上的语义规则。 翻译程序:汇编,解释,编译。 4. 解释程序及其与编译程序的比较 解释程序功能: 源程序 +初始数据 =计算结果 解释与编译的区别: 工作模式:这是根本区别,编译把源程序翻译成目标代码,而解释直接得到计算结果,不 生成目标代码。 存储区内容: 编译方式翻译和执行分开,解释方式翻译和执行同时并允许修改源程序,因 此二者存储组织不同。 效率: 解释慢于编译,很多语言两种方式都有 。 标识符: =表达式 第三章:文法和语言 1. 文法的直观概念: 一组判定规则。 在实践中,文法不包含多余产生式。 2. 文法 G 定义为四元组( VT,VN ,S, P ),其中: VT 是一个非空有穷终结符号集合; VN 是一个非空有穷的非终结符号集合, 且 VT∩VN=Φ; P 是一个产生式的非空有穷集合(注意:产生式左部至少含有一个非终结符) ; S VN ,称为开始符号,且 S 至少必须在某个产生式的左部出现一次 。 通常用 V 表示 VN∪ VT,V 称为文法 G的字母表或字汇表 . 3. 句型、句子: 设文法 G,如果符号串 x 是从识别符号推导出来的,即 S→x,x ∈V* ,则称 x 是一个句型。仅含终结符号的句型是一个句子。 4. 语言: 语言 L(G )是由文法 G产生的所有句子所组成的集合。 5 文法的类型:逐渐对产生式施加限制 四种类型: 0 型, 1 型, 2 型, 3 型 0 型: G=(VT,VN,S,P) ,规则形式 : , (VT VN)*, 中至少有一个非终结 符 1 型(上下文有关) : , 仅 S- 除外 规则形式 : A A VN, , , (VT VN)*, 2 型(上下文无关):规则形式 : A A VN, (VT VN)* 3 型正规文法(右线性): A aB 或 A a A,B VN (左线性) A Ba 或 A a a VT { } 6. 最左(最右

文档评论(0)

1亿VIP精品文档

相关文档