查找语法 E → E + T、E → T、T → T * F、T → F、F → (E)、F → id 的 LR(0) 项目的规范集合。


解决方案

步骤1 - 构造增强语法并对产生式进行编号

(0) E′ → E

(1) E → E + T

(2) E → T

(3) T → T * F

(4) T → F

(5) F → (E)

(6) F → id

步骤2 - 对项目集应用闭包并查找 goto

方框表示新状态或项目,圆圈表示重复项目。

因此,通过在 I0 上应用 goto,已完成 I0 的所有规则。现在,以相同的方式在 I1、I2 上应用 goto,然后继续。

绘制 DFA


每个项目集可以作为 DFA 的一个状态,即 I0、I1 … … I11 将是 DFA 的 11 个状态。它们使用 goto 函数连接。

例如,作为 goto(I0, E) = I1

∴ 从状态 I0 到 I1 将有一条边。

更新于:2021 年 11 月 2 日

3K+ 浏览量

开启您的 职业生涯

完成课程获得认证

开始学习
广告