中科大2021-2022学年秋季第一学期《编译原理与技术》第四讲 文法和语言.pptVIP

  • 28
  • 0
  • 约9.5千字
  • 约 61页
  • 2022-02-23 发布于重庆
  • 举报

中科大2021-2022学年秋季第一学期《编译原理与技术》第四讲 文法和语言.ppt

* 《编译原理与技术》讲义 * e.g.5 文法产生的语言 文法G4对句子aaabb的推导: S ? A B S? A B ? a A B A? a A ? a a A B A? a A ? a a a B A? a ? a a a b B B? b B ? a a a b b B? b * 《编译原理与技术》讲义 * e.g.5 文法产生的语言 文法G5对句子aaaabbbb的推导: S ? a S b S? a S b ? a a S b b S? a S b ? a a a S b b b S? a S b ? a a a a b b b b S? a b * 《编译原理与技术》讲义 * 最左推导 最右推导 E?E + E E?E + E ?i + E ?E + i ?i + i ?i + i 句型推导时,总是选择最左出现的非终结符进行替换 总是选择最右出现的非终结符进行替换,也称为规范推导 * 《编译原理与技术》讲义 * 若干基本概念 规范推导(最右推导)和规范归约(最左归约) G1的句子i+i*i的规范推导过程: E 开始符号 ? E + E E? E + E ? E + E * E E? E * E ? E + E * i E? i ? E + i * i E? i ? i + i + i E? i 推导方向 * 《编译原理与技术》讲义 * 若干基本概念 规范推导(最右推导)和规范归约(最左归约) G1的句子i+i*i的规范归约过程: i + i + i E? i E + i * i E? i E + E * i E? i E + E * E E? E * E E + E E? E + E E (只有)开始符号 归约方向 * 《编译原理与技术》讲义 * 最右推导 最左归约 如果右句型 可以“归约”到右句型 ,仅当存在最右推导序列 从开始符号S出发,进行最右推导,用相应产生式右部文法符号串替换展开其左部非终结符号。目标为句子(右句型)。 从句子(右句型)出发,用最左归约,用相应产生式的左部非终结符号替换产生式右部(句柄)。目标为开始符号S。 * 《编译原理与技术》讲义 * 最右推导 最左归约 推导中,关键是选择产生式 归约中,关键是确定句柄。而句柄与某产生式的右部相同且有某最右推导序列中的某一步对应;归约过程看成这一步最右推导的逆过程。 * 《编译原理与技术》讲义 * 若干基本概念 分析树 分析树看成是(句型)推导的图形表示;反之,(句型)推导可理解为分析树的线形表示。 分析树所有结点v(内部结点和叶子结点)由文法符号或?标记,即v∈ (VT∪VN∪{?} ); 根结点由文法开始符号S标记; 内部结点A ∈ VN,其所有子结点从左往右排列构成以A为左部的某产生式的右部 * 《编译原理与技术》讲义 * 若干基本概念 分析树与推导 文法G1推导句子i+i*i (最左)推导过程: 分析树 E ? E + E E E E + 圆圈内表示新构造的分析(子)树-即推导所用产生式 * 《编译原理与技术》讲义 * 若干基本概念 分析树与推导-句子i+i*i (最左)推导过程: 分析树 E ? E + E ? i + E E E E i + * 《编译原理与技术》讲义 * 若干基本概念 分析树与推导-句子i+i*i (最左)推导过程: 分析树 E ? E + E ? i + E ? i + E * E E E E i E E + * * 《编译原理与技术》讲义 * 若干基本概念 分析树与推导-句子i+i*i (最左)推导过程: 分析树 E ? E + E ? i + E ? i + E * E ? i + i * E E E E i E E i * + * 《编译原理与技术》讲义 * 若干基本概念 分析树与推导-句子i+i*i (最左)推导过程: 分析树 E ? E + E ? i + E ? i + E * E ? i + i * E ? i + i * i E E E i E E i i + * …1代结点 …2代结点 …3代结点

文档评论(0)

1亿VIP精品文档

相关文档