问题标签 [dfa]
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.
rule - 从语法规则创建 dfa 的工具
我正在寻找将一组规则转换为确定性有限自动机的任何工具或软件。实际上我正在开发一个词干分析器,类似于英语的搬运工词干分析器。我有一组规则可以从留下词干的术语中删除后缀和/或前缀。我可以手动将此规则转换为 DFA,但它是一种临时解决方案,会导致灵活性问题。
任何帮助表示赞赏。
谢谢!
context-free-grammar - 上下文无关语法 - LR(0) DFA
我需要一些帮助来为上下文无关语法构建 LR(0) DFA。
这就是我所拥有的:
状态
然后我有一个标记a
为:
状态
从这个状态,一个箭头标记a
为:
状态:
这就是我的问题开始的地方。正如你所看到的,我从这个状态得到两个箭头B
,因为我有:
我做错了什么?
java - Java中的递归泛型定义和Stackoverflow
我正在为一些研究项目编写确定性有限自动机的实现,并且有一些弧会导致相同的状态。我为 State 编写了这个类,但我想知道为什么代码会产生 Stackoverflow:
令人惊讶的是,如果我删除“addTransition”调用之一,则没有错误。
我的 Java 版本是 JDK 1.6.37,操作系统是 Ubuntu Linux 12.04。
* UPD: *堆栈跟踪是:
任何意见?
regular-language - 为给定的正则表达式绘制最小 DFA
什么是绘制最小的直接和简单的方法DFA
,它接受与给定相同的语言Regular Expression(RE)
。
我知道可以通过以下方式完成:
但是有什么捷径吗?像(a+b)*ab
java - 在Java中将字符串与正则表达式匹配
我有一个 DFA,但我不知道它是否接受状态。我只知道它接受的正则表达式。我试图找出它是否是接受状态,所以我查看了 DFA 的每个状态,我想将接受正则表达式与当前状态生成的单词进行比较。
所以我正在寻找可以将这个词与正则表达式进行比较并告诉我它是否匹配的东西,这样我就可以将 DFA 的这个状态标记为接受状态,然后进入另一个状态。我试图实现一些算法,但事实证明这对我来说是一个相当复杂的问题。你能给我建议吗?谢谢!
字母:{a,b,c}
正则表达式示例:ab.(a|c)*
finite-automata - DFA 可以有 epsilon/lambda 转换吗?
找不到任何肯定的东西。具有任何 epsilon 转换的 NFA 是 epsilon-NFA 吗?谢谢。
finite-automata - 如何求解这个 DFA 的 δ(A,01)?
考虑 DFA:
δ(A,01) 等于多少? 选项:
正确答案是选项 B),但我不明白如何。请有人向我解释解决它的步骤,以及一般来说,我们如何解决任何 DFA 和任何过渡的问题?
谢谢。
parsing - LR(1) 项 DFA - 计算前瞻
我很难理解如何计算 LR(1) 项的前瞻。
可以说我有这个语法:
LR(1)-item 是具有前瞻功能的 LR(0) 项。所以我们将得到状态 0 的以下 LR(0)-item:
状态:1
有人可以解释如何计算前瞻吗?一般的做法是什么?
先感谢您
theory - 正则表达式 0(0+1)*0+1(0+1)*1 的 DFA 是多少?
这是我画的DFA-
这是正确的吗?
我很困惑,因为q4
状态2
对于违反规则的相同输入符号有不同的转换DFA
,但我想不出任何其他解决方案。
regex - 实现词法分析器时的 DFA 与正则表达式?
(我只是在学习如何编写编译器,所以如果我提出任何不正确的声明,请纠正我)
当他们可以简单地使用正则表达式时,为什么仍然有人在代码中实现 DFA(goto 语句、表驱动的实现)?据我了解,词法分析器接收一串字符并生成一个标记列表,这些标记在语言的语法定义中是终端,使得它们可以用正则表达式来描述。循环一堆正则表达式,如果找到匹配项就跳出循环不是更容易吗?