首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >乔姆斯基范式--计算理论

乔姆斯基范式--计算理论
EN

Stack Overflow用户
提问于 2010-12-14 01:23:09
回答 1查看 925关注 0票数 1

我想把语法改成乔姆斯基范式(CNF)。

这是一个例子

代码语言:javascript
运行
复制
S--> AB | ɛ

A--> aASb | a

B--> bS

我试着解决这个问题

代码语言:javascript
运行
复制
S --> [A] [B]

[A] --> [aA] [Sb] | [a]

[aA] --> [a] A

[Sb] --> s [b]

[a] --> a

[b] --> b

我对答案不太确定。谁能告诉我这是对还是错?

EN

回答 1

Stack Overflow用户

发布于 2010-12-14 01:32:32

一个错误是您删除了S --> ɛ转换。您需要这样做( CNF中特别允许使用S --> ɛ,尽管AnyNonTerminalOtherThanS --> ɛ不允许)。

那么规则[A] --> [a]应该是[A] --> a,因为如果您在RHS上只有一个条目,那么它必须是一个终端。

代码语言:javascript
运行
复制
[aA] --> [a] A
[Sb] --> s [b]

这两个看起来像是拼写错误,因为As并不存在。你的意思可能是:

代码语言:javascript
运行
复制
[aA] --> [a] [A]
[Sb] --> [S] [b]

除此之外,你所拥有的都是正确的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4431553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档