编译原理复习.docxVIP

  • 8
  • 0
  • 约4.9千字
  • 约 6页
  • 2021-03-21 发布于天津
  • 举报
第一草引论 编译过程的阶段 由词法分析、语法分析、语义分析.中间代码生成. 代码优化和目标代码生成八个阶段 编译程序的概念 编译程序的结构 例:(B )不是编详程序的组成部分。 A?词法分析器^ B?设备管理程序 C?语法分析程序:D.代码生成程序 4?遍的概念 对源程序(或其中间形式〉从头至尾扫描一次并进 行有关加工处理,生成新的中间形式或最终目标程 序,称为一遍。 5. ? 编译程序与解释程序的区别 例「解祥程序和編译程序是两类程序语言处理程序. 它们的主要区别在于(D )c A. I用户与多用户的差别 B.对用户程序的 差错能力 C.机辭执行效率 D.是否生成目标 代码 第三率文法和语言 文法的概念 字母表、符号串和集合的概念及运算 例:(ab b) c与下面的那些串匹配(ACD A? ababbc: B? abab: C? c: D? babe: E? aaabc 例:ab c4(a b)c与后面的那些串匹配(BC) 例:(a b)a7ba)?与后面的那些串匹配(ADE ) 文法的定义(四元组表示) 文法G定义为四元组g V:, P. S) Vx :非终结符集 V::终结符集 P:产生式(规则)集合 S:开始符号(或识别符号) 例:给定文法 A::= bA | cc.下面哪些符号串可 由其推导出(①②⑤)。 ? ① cc ② t/cc ③bcbcc ④ bccbcc ⑤bbbcc 什么是推导 例^已知文法G: E-E+T|E-T|T T-T*F|T/F|F F-XE)|i 试给出下述表达式的推导:i*i^i 推导过程:E-E+T -T+T -T*F+T -F*F+T -i*F+T -i*i+T -i*i+F -i*i+i 句型、句子的概念 例:假设G—个文法,S是文法的开始符 号.如果S=权,则称x是ML ° 例:对于文法G.仅含终结符号的句型称 为句子, 语言的形式定义 例:设 r=(a b c) (x y|z)? 则 L(r)中元 素为—9 个。 例:文法G产生式为S-AB?A-aAb| , B-cBd cd.贝9 B WL(G)。 A. ababcd: B. ccdd: C. ab: D. aabb 等价文法 例:如果两个文法描述了同一个语言.则 这两个文法是等价文法。 文法的类型 0型:左边至少有一个非终结符 1型:右边长度H左边长度 2型:左边有且仅有一个非终结符 3 型:形如:AaB, Aa 徐类型文法都是逐级包含关系. 0型文法 例:文法S-abC c, bC-d是几空文法0 型 例:文法S-abC. bC-ad是几型文法1 型 例:文法 G[A] : A~* ? A-*aB. B—Ab, B~*a 是几型文法2型 例:文法S-a bC, C-d是几盘文法3型 最左(右)推导 规范推导:最右推导被称为规范推导 规范句型:由规范推导所得的句型称为规范句型 规范归约:左归约为规范归约 二义性 F->(E)|i 证明E+T*F是它的一个句型,指出这个句型的所有 短语.?直接短语和句柄。 岔 E-E+T-E+T*F- 语法树:p 短语,E4-T*F, T*F< 宜接矩语:VF.- 句柄* T*F?, 例:已知文法G[S] S~ aB | bA A-*a| aS |bAA BfaBB|bS|b 例:如果一个文法存在某个句子对应两棵不同的语 法树.则称这个文法是二义的? 例:已知文法 Gl: P->PaP PbP|cP|Pe|f. G1 是 (A )o A二义文法:B无二义的 例:证明下述文法G[<表达式>]是二义的。 <表达式>一站(<表达式>)|<表达式><运算符><表 句型aabbAb的句柄是(D〉 达式〉 <运算符〉*1/ 答:可为句子a^a*a构造两个不同的最右推导: 最右推导1 (表达式〉 => (表达式〉〈运算符〉(我达式〉 =>〈表达式〉(运算符〉a =>〈表达式〉* a 二>(我达式〉(运算符〉〈农达代)* a => 〈表达式〉〈运算符)a * a =〈表达式〉+ a * a a + a * a 最右推导2 (表达式〉 第四苹词法分析 词法输出的token表示法 词法记号、模式、词法单元的概念 词法输出的token表示:二元式 表示(氓词种别.讯词自身的值) 例:扫描辭的任务是从源程序中识 别出一个个单词c 正规式的概念及其代数性质 词法分析中的做词符号的描述匸具 正规式代表的集合 =〈表达式〉 (运算符〉〈表达式) => (表达式)〈运算符》 〈表达式)〈运算符) 〈表 达式〉 =>〈表达式》 (运算符》〈表达式)〈运算符) =>〈表达式》 (运算符》〈表达式) => 〈表达式〉〈运算符)a * a 例:请描述下面正规式定义的串■字母表S= {0, l}c 1(0 1)*0 答:必须以1开头0结

文档评论(0)

1亿VIP精品文档

相关文档