问题标签 [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.
grammar - 左线性和右线性语法
我需要帮助为以下语言构建左线性和右线性语法?
对于a)我有以下内容:
这个对吗?我需要 b & c 方面的帮助。
formal-languages - 这个 DFA 有解决方案吗?
我试图创建一个可以识别带有字母 {a,b,c} 的字符串的 DFA,其中 a 和 c 出现偶数次,而 b 出现奇数次。
我想知道这可能只能用图灵机或无上下文语言等其他方法来表达。
您可能会觉得考虑解决方案很有趣。
context-free-grammar - 确定给定语言是否是常规/上下文无关/非上下文无关
我需要一些帮助来确定给定的语言是常规的、上下文无关的还是非上下文无关的。答案中简短的非正式解释就足够了,因此无需使用抽水引理。
可以说我有以下语言:
这是我的解决方案:
可以为 L2 构造一个 DFA,因为 L2 不需要无限的内存,所以 L2 是规则的。对于 L3 的推理与上述相同。对于 L4,我们可以构造一个根本不接受“abc”的 DFA,因此是常规的。
L1 是正则的,因为正则语言在 ∩ 下是封闭的。
对于 L2,我们可以将语言分为:
我们知道可以为 L3 构造 DFA,因此 L3 是规则的。L4 是上下文无关的,因为我们可以构建一个 PDA,其中堆栈用于计算 a:s 和 b:s 的数量。
L2 因此是上下文无关的,因为常规语言和上下文无关语言的 ∩ 导致上下文无关语言。
对于 L3,我们可以看到它是非上下文无关的,因为我们被限制为 1 个堆栈,并且要进行超过 1 个比较,我们需要更多的堆栈。
是我的推理权利吗?我很快就要考试了,需要知道我是否有这个想法。
提前致谢
context-free-grammar - 为上下文无关语言抽取引理
我有一个关于上下文无关语言的特定泵引理问题的问题。
假设我们有以下语言:
这是我试图证明该语言不是上下文无关的尝试:
假设 L 与上下文无关。从引理中取常数 n>0。
比根据引理,Z 可以写成 Z = uvwxy,其中下列性质成立:
我们为 vwx 提供了 6 种不同的可能性
到目前为止这是对的吗?我不确定的事情是,我的不同 vwx 案例是否正确。
提前致谢
lambda - 如何在 lambda 演算中使用 β 减少来评估表达式?
我想评估以下表达式:
使用β还原。
答案是:
但我不明白第二阶段:
从这里:(λx.y)((λz.zz)(λw.w))
到这里(λx.y)((λw.w)(λw.w))
我们在那里做什么?根据我的理解,我需要使用α-等价规则。
parsing - 如何在 CUP 解析器语法中的两个标记之间定义至少一次出现的字符串
我正在尝试在 LALR(1) 语法(使用 CUP 解析器)中定义一个非终结符号。要求
最后我想出了这个定义:
whereSC
是标记之间的分隔符(分号),并且hour_l
是小时列表的非终端符号。这个解决方案有一个问题:HOUR
不能存在,因为 epsilon 可以减少到hour_l
. 除了指定所有可能性或使用 CUP 的语义功能(即在部分中放置多少次的计数器)之外,还有一个聪明的解决方案HOUR
吗?我宁愿不使用语义来实现这一点;事实上,在我看来它与语法有关。
r - 将数字读取为字符串
我是 R 编程新手,我想在 R 中读取文本文件。
其中一列,假设第 7 列是数字,每个数字代表一个 ID,我希望 R 读取数字,就好像它们是字符串一样。并计算每个 ID 在文件中出现的次数(以便稍后我可以将每个 ID 的频率分配给给定的 ID 以供以后使用)我尝试过
这可行,但它将 ID 作为数字。现在我试过了
但随后它将整个列 ID 作为一个字符串并从
我明白了
grammar - 创建“上下文无关语法”的提示
我是 CFG 的新手,
有人可以给我创建生成某些语言的 CFG 的提示吗
例如
L = {am bn | m >= n}
我得到的是:
So -> a | aSo | aS1 | e
S1 -> b | bS1 | e
但我认为这个区域是错误的,因为b
's 的数量有可能大于a
's。
regular-language - 是 L = {a^nb^m | n>m} 是规则的还是不规则的语言?
我在解决/证明这个问题时遇到了麻烦。请问有什么想法吗?
theory - 两种不同字母的语言的交集是什么?
我对此进行了一些谷歌搜索,但没有任何真正确定的弹出。
假设我有两种语言 A 和 B。
A = { w 是 {a,b,c}* 的子集,因此 w 的倒数第二个字符是 b }
B = { w 是 {b,d}* 的子集,因此最后一个字符是 b }
如何定义这一点?我认为字母表将是两者的结合,使其成为 {a,b,c,d} 但除此之外,我不知道如何对此进行 DFA。
如果有人能对此有所了解,那就太好了。