第二课语言的基本知识.ppt

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 语言的基本知识 学习本章的目的。 2.1 符号串 2.2 文法和语言的定义 2.3 分析树和二义性 2.4 形式语言概观 学习本章的目的 构造编译程序的算法是从研究源程序及目标程序产生的,首先找到源语言的形式描述,根据这种描述,构造出相应的分析加工程序。 语言分语法,语义和语用。程序语言语法的形式描述是很好用的,语义的形式描述不那磨好用,但它推动语言理论的发展。 2.1 符号串 2.1.1 字母表 2.1 .2 符号串 一. 符号串的定义 二. 术语 三. 符号串的运算 四. 符号串集合的运算 2.2 文法和语言的定义 2 . 2 . 1 引子 2 . 2 . 2 文法和语言的定义 一. 文法和语言的定义 二. 推导 三. 语言 四. 最左推导和最右推导 五。短语,直接短语,句柄 例:E ? E+T ?T+T ?F+T ?a+T? a+F ?a+a 2.3 分析树和二义性 一. 分析树的定义 二. 如何画出分析树 三. 子树 四. 二义性文法的定义 五. 在构造编译程序中如何处理 二义性文法 2.4 形式语言概观 2.4. 1 文法分类 2.4. 2 非上下文无关文法的语言结构 2.4. 3 上下文无关语言和正规语言的区别 根据推导序列,对每步推导画相应分枝 A S a S b S A a a b a ?aSbAS ?aabAS ?aabbaS ?aabbaa ?aAS S 二. 如何画出分析树 (1.自顶向下) 根据归约序列,对每步归约画相应分枝 A S a S b S A a a b a ?aAa ?aSbAa ?aSbbaa ?aabbaa ?aAS S 二. 如何画出分析树 (2.自底向上) 1. 一个句型推导或分析用一棵树结构图示 出来,它反应了一个句子语法结构的层次。 2. 对于一个句子的多种推导(若文法是无二义性的),采用各种推导过程,画出的分析树是一样的。分析树并未描述推导过程。 3. 在书中,用画分析树的过程解释语法分析过程,用分析树图解语法结构。 分析树是推导的图形表示。 关于分析树的几点说明 一棵分析树中一个特有的结点连同它的全部后裔,连接这些后裔的边以及这些结点的标记。例如: S A b S a S b a A a a 三. 子树 短语:一棵子树的所有叶子自左至右排列起来形成一个相对于子树根的短语。 直接短语:仅有父子两代的一棵子树,它的 所有叶子自左至右排列起来所形成的符号串。 句柄:一个句型的分析树中最左那棵只有父子两代的子树的所有叶子的自左至右排列。 例如,对表达式文法G[E]和句子a1+a2*a3,挑选出推导过程中产生的句型中的短语,直接短语,句柄。 用子树解释短语,直接短语,句柄: E ?E+T ?T+T ?F+T ? a1+T ? a1+T*F ? a1+F * F ? a1+a2 *F E+T T,T+T F,F+T a1, a1+T a1, T*F, a1+T*F a1, F,F*F, a1+F*F a1, a2,a1+ a2 *F, a2 *F a1, a2, a3, a2 * a3 a1+ a2 *a3 E E + T T F a1 T * F F a2 a3 ?a1+a2 *a3 短语 例(a) E ?E+T ?E+T*F ?E+T*a3 ?E+F* a3 ?E+a2 * a3 ?T+a2 * a3 ?F+a2 * a3 E E + T T F a1 T * F F a2 a3 ?a1+a2 *a3 例(b) 描述一个句子的文法不是唯一的; 2. 对于一个句子的分析应是唯一的。 考虑表达式下面的文法 G[E],其产生式如下: E?E+E?E*E? (E) ? a 对于句子a+a*a, 有如下两个最左推导: E?E+E ?a+E ?a+E*E ?a+a*E ?a+a*a E ?E*E ?E+E*E ?a+E*E ?a+a*E ?a+a*a 四. 文法的二义性的定义 E?E+E ?a+E ?a+E*E ?a+a*E ?a+a*a E ?E*E?E+E*E ?a+E*E?a+a*E ?a+a*a E E + E E * E a a a E E * E + E E a a a 最左推导 例(1) E?E+E ?E+E*E

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档