问题标签 [formal-languages]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
713 浏览

antlr3 - 如何通过ANTLR识别英文单词?

我想确定一个单词是否在大量关键字(粗俗等)中,并且解析器应该是一个很好的解决方案(据我所知,它应该很快)因为我需要一些规则来重写这些字。

我的问题是如何添加到语法规则中(如果可能的话):

  • 在单词中的每个字母后添加星号

  • 语言

  • 简单的规则,例如 word + -ing、word +-ed

(必须有一个教程,但我找不到它。)

注意:此系统只会通知管理员,因此不必 100% 准确。

或者你能推荐我另一种更好的方法吗?

谢谢!

0 投票
4 回答
4359 浏览

haskell - 检查字符串是否由平衡括号组成

我编写了以下程序来检查字符串是否平衡括号:

以下是一些示例数据:

由于这个程序只使用了最基本的显式递归构建块,我想知道是否有一种更短、更高级的方法涉及我还不知道的语言设施。


好的,我从几个答案和评论(以及我自己的想法)中提炼出以下解决方案:

0 投票
2 回答
1945 浏览

formal-languages - 语法的产生规则

在任何事情之前,是的,这是来自课程作业,我在处理另一个项目时偶尔会这样做。

一种语言由那些字符串(终端“a”和“b”)组成,其中 a 的数量 = b 的数量。试图找到将定义上述语言的语法的产生规则。

更正式地说,L(G) = {w | Na(w) = Nb(w)}

所以我想它应该是这样的,L = {ϵ, ab, aabb, abab, abba, bbaa, ... 等等}

任何提示,甚至与解决方案相关的问题都可以帮助我更好地掌握当前的问题。

0 投票
5 回答
37703 浏览

algorithm - 为什么我们需要前缀、后缀表示法

我知道它们如何相互转换,但从未真正了解它们的应用程序是什么。通常的中缀操作可读性很强,但是它在哪里失败导致了前缀和后缀表示法的开始

0 投票
3 回答
3611 浏览

regex - 如何从正则表达式中找到语言?

我如何在字母表 {a, b} 上找到以下正则表达式的语言?

编辑:在我疯狂地投票之前,如果有人能向我展示解决这些问题的步骤,而不仅仅是解决方案,我将不胜感激。甚至可能会带我走过一个,这样我就可以自己做剩下的事情了。

谢谢!

0 投票
3 回答
2357 浏览

regex - 在字母表 {a, b} 上找到包含子字符串 aba 的字符串的正则表达式?(形式语言理论)

这些问题要求为包含字母表 {a, b} 上的子字符串 aba 的字符串找到一个正则表达式。

这是否意味着任何东西都可以在 aba 之前/进行,因此正则表达式将是:

还是问题只是在寻找:

注:U 表示并集,* 表示 0 次或多次。

0 投票
3 回答
9378 浏览

computer-science - 为什么正则语言的补语仍然是正则语言?

根据我的教科书,只要 L1 是正则语言,L1 = A* - L1 的补码就是正则语言。
A* 不是还包括上下文无关语言、上下文敏感语言和递归可枚举语言吗?A*-L1 也会包括所有这些,不是吗?那怎么能有规律呢?
在有限状态机的表示下,我理解为什么补语仍然是一种常规语言。但是,我无法理解其背后的理论。

此外, A* - L1 = A* 交集补码(L1) 。用补语定义的东西定义补语不是重言式吗?我真的不明白这怎么可能有效。

谢谢。

0 投票
4 回答
3449 浏览

context-free-grammar - 我如何找出这种上下文无关语法生成的语言?

我正在处理以下语法:

我需要找出 L(G)。问题是,我发现语法中的单词是这样的:以 a 开头并以 b 结尾,或者以 b 开头并以 a 结尾,并且在这些字母之间有一种组合:ab、ba、aaba,阿巴;然后通过在中间的 a 和 b 之间插入这 4 个组合中的一个来形成下一个单词。但是我该如何正式表达呢?我的意思是,据我所知,L(A) = a^n S a^n 如果 w 属于 L(G),那么 w 反转也属于 L(G)。我试图将其表达为正则表达式但失败了......有人可以帮忙吗?

谢谢你。

0 投票
2 回答
245 浏览

c - 编程语言中的术语“上下文”以及加载和更新如何影响上下文?

在上下文无关和上下文相关的语言中,术语上下文是什么意思?一个变量可以有多个上下文吗?如果我需要将特定值存储在特定内存地址中,对内存地址的上下文有何影响?如果我想更新一个变量,变量的上下文如何变化?

0 投票
1 回答
2754 浏览

formal-languages - 找到一个反向是确定性的非确定性 CFL

我有一个家庭作业,我完成了除一个问题(见标题)

对于我的生活,我无法弄清楚......所以我开始认为这是一个诡计问题。

我将提交的当前答案是:

但是,由于所有确定性语言都是非确定性语言的子集,因此 L2 可以被认为是非确定性的。

顺便说一句,我试图做的唯一另一个例子是:

这似乎是可能的,因为向前存在不确定性,因为输入可以是 a 或 b,只要其后跟 a。

相反,存在确定性,因为它只接受'a'。但是,它引入了新的非确定性,因为第二个输入可能是 a 或 b。

任何帮助/指导都会很棒。