第四章 语法分析(上)——LL(1)文法

概述

语法分析器是编译器的核心,语法分析器从词法分析器获得一个由词法单元组成的串,并验证这个串可以由源语言的文法生成。
语法分析器大体上可以分为三种类型:通用的、自顶向下的和自底向上的。
语法分析器的输入总是按照从左向右的方式被扫描,每次扫描一个符号。
在这里插入图片描述
自顶向下文法典型为LL(1)文法,自下而上文法典型为LR文法。其中LR文法包括SLR、LR(1)、LALR(1)文法。
各文法之间的关系。
在这里插入图片描述
下面将依次讲解各文法

LL(1)文法

LL(1)文法的判定

判断文法G是否是LL(1)文法,有两种判断方法,一是根据以下定义:
一个文法G是LL(1)的,当且仅当G的任意两个不同的产生式A->α|β满足下面条件:

  1. 不存在终结符a使得α和β都能够推导出以a开头的串。
  2. α和β最多只有一个可以推导出空串。
  3. 如果β=>ε,那么α就不能推导出任何以Follow(A)中某个终结符开头的串。

即:First(α)和First(β)不相交。如果β=>ε,那么First(α)和Follow(A)不相交。

另一种方法就是构造出预

  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值