已知文法G(S):S→aS|bS|c
(1)列出这个文法的所有LR(0)项目
(2)计算项目集规范族并构造识别活前缀的D
(3)构造LR(0)分析表。
编译原理问题解答文法
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- Chauncy昌西 2023-04-27 22:02关注
(1) LR(0) 项目是指形如 [A → α·β] 的项,其中 A 是文法符号,α 和 β 是文法串。在这个文法 G(S): S → aS | bS | c 中,我们有以下的 LR(0) 项目:
I0:
[S' → ·S]
[S → ·aS]
[S → ·bS]
[S → ·c]I1:
[S' → S·]I2:
[S → a·S]
[S → ·aS]
[S → ·bS]
[S → ·c]I3:
[S → b·S]
[S → ·aS]
[S → ·bS]
[S → ·c]I4:
[S → c·]
[S → ·aS]
[S → ·bS]
[S → ·c](2) 接下来,我们需要构造这个文法的 LR(0) 项集规范族,并且基于这个规范族构造 DFA。构造项集规范族的过程如下:
I0:
[S' → ·S]
[S → ·aS]
[S → ·bS]
[S → ·c]I1:
[S' → S·]I2:
[S → a·S]
[S → ·aS]
[S → ·bS]
[S → ·c]I3:
[S → b·S]
[S → ·aS]
[S → ·bS]
[S → ·c]I4:
[S → c·]
[S → ·aS]
[S → ·bS]
[S → ·c]I5:
[S → aS·]
[S → ·aS]
[S → ·bS]
[S → ·c]I6:
[S → bS·]
[S → ·aS]
[S → ·bS]
[S → ·c]I7:
[S → aS·]
[S → ·aS]
[S → ·bS]
[S → ·c]I8:
[S → bS·]
[S → ·aS]
[S → ·bS]
[S → ·c]I9:
[S → c·]
[S → aS·]
[S → ·aS]
[S → bS·]
[S → ·bS]
[S → ·c]I10:
[S → aS·]
[S → ·aS]
[S → ·bS]
[S → ·c]I11:
[S → bS·]
[S → ·aS]
[S → ·bS]
[S → ·c]I12:
[S → aS·]
[S → ·aS]
[S → ·bS]
[S → ·c]I13:
[S → bS·]
[S → ·aS]
[S → ·bS]
[S → ·c]I14:
[S → c·]
[S → aS·]
[S → ·aS]
[S → bS·]
[S → ·bS]
[S → ·c]在这里,我们可以使用以下的 DFA 来识别输入的活前缀:
+---a--+ +---b--+ | | | | v v v v =>(I0)---a-->(I2)---a--->(I5)---ε-->(I10)* | | | b b c | | | v v v (I3) (I6) (I4)* | | | a a a
解决评论 打赏 举报 编辑记录无用 1
悬赏问题
- ¥15 vue使用gojs,需求在link中的虚线上添加方向箭头
- ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
- ¥15 SPSS分类模型实训题步骤
- ¥15 求解决扩散模型代码问题
- ¥15 工创大赛太阳能电动车项目零基础要学什么
- ¥20 limma多组间分析最终p值只有一个
- ¥15 nopCommerce开发问题
- ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
- ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
- ¥15 pycharm输出和导师的一样,但是标红