首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EBNF中的递归

EBNF中的递归
EN

Stack Overflow用户
提问于 2016-03-15 11:08:31
回答 1查看 1.2K关注 0票数 1

问题是:

a.编写一个名为mp的直接递归EBNF规则,该规则描述所有具有匹配括号的符号:()()()()()(()())((())())(()(()))()。它不应该承认(())((()()是合法的。

编写表格证明及其派生树,说明()(()())是如何被确认为合法的。

到目前为止,我已经想出了一个可行的解决方案。我不确定这是正确的,还是我遗漏了什么。

代码语言:javascript
复制
<mp> ::= "" | ( <mp> "(" <mp> ")" ) 

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-15 11:22:20

但是,在它结束之前,我要说的是:

代码语言:javascript
复制
mp := ( mp ) mp
mp := ''

使用n >= 0m >= 0的第二个示例不在BNF中。不过,你的第一个应该是可以接受的。

这是我的()(()())派生树

代码语言:javascript
复制
mp
( mp ) mp
( '' ) mp
()( mp ) mp
()( mp ) ''
()(( mp ) mp )
()(( '' ) mp )
()(()( mp ) mp )
()(()( mp ) '' )
()(()( '' ))
()(()()) 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36009543

复制
相关文章

相似问题

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