编译原理02_2.pptVIP

  • 3
  • 0
  • 约6.47千字
  • 约 30页
  • 2018-03-07 发布于河南
  • 举报
编译原理02_2

* * * VT :语言不可再分的基本符号,如单词符号 VN:用来代表语法范畴,如算术表达式、分程序 S:特殊的分终结符号,用来代表的语法范畴称为“句子” P:定义语法范围的书写规则 A ? ? VT :语言不可再分的基本符号,如单词符号 VN:用来代表语法范畴,如算术表达式、分程序 S:特殊的分终结符号,用来代表的语法范畴称为“句子” P:定义语法范围的书写规则 A ? ? * * * * * * * * * * 郑州大学 程序设计语言 编译原理 张 淑 艳 zhang_shu_yan@163.com 温故知新 字母表 符号 符号串 语言 集合 组合 集合 区别ε, ? 和{ε} 符号串的连接:符号串x和y的连接表示为xy 符号串的长度 符号串的幂运算:设x是一个符号串,则: x0=ε,x1 = x,x2 = xx,…,xn = x…x 温故知新 符号串集合的连接 Σ*的子集U和V的连接(积)定义为 UV = {αβ|α∈U β∈V } 指数:Vn= VV…V,V0 = {ε} 闭包:V* = V0 ∪ V1 ∪ V2 ∪ V3 ∪ … 正闭包:V+ = VV* = V1 ∪ V2 ∪ V3 ∪ … 练习 U: { A, B, …, Z, a, b, …, z }, V: { 0, 1, …, 9 } UV, V6, V*, U(V )*, U+ 温故知新 符号 符号串 单词符号 词法分析器(正规式) 表达式 语句 程序块 程序 语法分析器 (上下文无关文法) 语法分析树 语言 集合 字母表 集合 组合 温故知新 定义1:上下文无关文法是四元组G =(VT , VN , S, P ) VT : 终结符集合 VN : 非终结符集合, VT ∩VN =? S : 开始符号, S∈VN P : 产生式集合, 产生式形式 : P ? ?, P ∈ VN , ? ∈(VN∪ VT)* 例 :变量i是一个算术表达式; 若E1和E2是算术表达式,则E1+E2、E1*E2和(E1)也是算术表达式 E ? i E ? E +E E ? E *E E ? (E) E ? i | E + E| E * E|(E) 简化表示 ( {i, +, *, (, )}, {E}, E, P ) E ?(E) ?(E + E) ?(i + E) ?(i + i) 温故知新 上下文无关文法如何定义语言?推导 把产生式看成重写规则,把当前符号串中的非终结符用其产生式右部的串来代替。 E ? i | E + E| E * E|(E) E? (E) E?E+E E?i E?i E ?E * E ?E+E * E ?i + E * E ?i + (E) * E ?i + (E + E) * E ?i + ( i + E) * E ?i + ( i + i) * E ?i + ( i + i) * i E? E *E E?E+E E?i E?(E) E?E + E E? i E? i E? i 温故知新 定义2:符号串的推导与归约:已给文法G=(VN,VT, S, P ) 令α,β∈(VN∪VT)*,且A?γ ∈ P ,此时,由符号串αAβ能够直接推出符号串αγβ ,我们称: 符号串αγβ是符号串αAβ的直接推导; 符号串αAβ是符号串αγβ的直接归约 记作: αAβ ? αγβ 若有α1,α2,…,αn∈ (VN∪VT) * 且α1 ?α2 ?… ?αn-1 ?αn 则称αn是α1的推导。 特别约定:若在推导关系α1 αn中允许α1=αn, 则称αn是α1 的广义推导 记作:α1 ? + αn ? * αn 记作:α1 温故知新 定义3:句型、句子和语言,已给文法G=(VN,VT, S, P ) 若 S ? * α,α∈ (VN∪VT)* ,则称α为文法G的句型 若 S ? * α,α∈VT*,则称α为文法G的句子 文法G所对应的语言是句子的集合,记作L(G)={α|α∈VT*,且S ? + α} i + i 和 i +(i + i) * i 都是 E ? i | E + E| E * E|(E) 的句子 例:考虑文法G1定义的语言。 G1: S→bA A→aA | a S ?bA ?ba S ?bA ?baA ?baa S ?bA ?baA ?baA … ?baa..a … L(G1)={ban|n≥1} 例:考虑文法G2定义的语言。 G2:S→AB

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档