编译原理:LL(1)文法
🕒 阅读时间:5 分钟📝 字数:1846👀 阅读量:Loading...
S_文法
:::tip
S_文法(简单的确定性文法)
每个产生式的右部都以终结符开始
同一非终结符的各个候选式的首终结符都不同
S_文法不含产生式
:::
非终结符的后继符号集
可能在某个句型中,紧跟在A后边的终结符a的集合,记为FOLLOW(A)
:::info 如果A是某个句型的最右符号,则将结束符“$“添加到FOLLOW(A)中 :::
产生式的可选集
产生式 的可选集是指可以选用该产生式进行推导时对应的输入符号的集合,记为
q_文法
- 每个产生式的右部或为 ,或以终结符开始
- 具有相同左部的产生式有不相交的可选集
- q_文法不含右部以非终结符打头的产生式
串首终结符
串首第一个符号,并且是终结符,简称首终结符 给定一个文法符号 ,的串首终结符集 被定义为可以从推导出的所有串首终结符构成的集合.如果 那么也在中
对于 ;
如果
产生式 A→α 的可选集 SELECT
- 如果
- 如果
LL(1)文法
文法G是LL(1)的,当且仅当G的任意两个具有相同左部的产生式 满足下面的条件
- 如果,则
- 至多有一个能推导出
- 如果 .则
- 如果 .则
:::tip
同一非终结符的各个产生式的可选集互不相交 :::
- 第一个L表示从左向右扫描输入
- 第二个L表示产生最左推导
- 1表示在每一步中只需要向前看一个输入符号来决定语法分析动作
编译原理:LL(1)文法
作者:xingwangzhe
本文链接:https://xingwangzhe.fun/posts/23217/
本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
留言评论