Questions tagged «formal-languages»

与形式语言,语法和自动机理论有关的问题

2
是{ww | ……}是否与上下文无关?
将语言定义为。换句话说,包含不能表示为重复两次的某个单词的单词。是否与上下文无关?LLLL={a,b}∗−{ww∣w∈{a,b}∗}L={a,b}∗−{ww∣w∈{a,b}∗}L = \{a, b\}^* - \{ww\mid w \in \{a, b\}^*\}LLLLLL 我试图将与相交,但是我仍然无法证明任何东西。我也看了帕里克定理,但这没有帮助。LLLa∗b∗a∗b∗a∗b∗a∗b∗a^*b^*a^*b^*

2
包含相同数量的001和100的单词的语言是否正常?
我想知道包含两个子字符串的相同数量实例的语言何时会是常规的。我知道包含相等的1和0的语言不是常规语言,而是诸如的语言,其中 =子字符串“ 001”的实例数等于“” 100英寸普通?注意,将接受字符串“ 00100”。L { w ∣ }LLLLLL{w∣{w∣\{ w \mid}}\} 我的直觉告诉我不是,但我无法证明这一点。我无法将其转换为可以通过抽运引理抽运的形式,那么我怎么证明呢?另一方面,我尝试构建DFA,NFA或正则表达式,但在这些方面也都失败了,那么我应该如何进行?我想大致了解这一点,而不仅仅是针对所建议的语言。

3
如果将参数添加到上下文无关文法中,将会得到什么?
我当时在考虑对倾向性敏感的语言的语法,如果将CF语法与参数结合使用,它似乎可以解决问题。例如,考虑以下片段,以类似于ANTLR的格式简化Python语法: // on top-level the statements have empty indent program : statement('')+ ; // let's consider only one compound statement and one simple statement for now statement(indent) : ifStatement(indent) | passStatement(indent) ; passStatement(indent) : indent 'pass' NEWLINE ; // statements under if must have current indent plus 4 spaces ifStatement(indent) …

2
如果一元语言的指数是线性函数,它是否是正规语言?
在为我的正式语言和自动机课程做当前的工作时,我有点陷入涉及一元语言(我希望这是正确的术语)的练习,即基于单个字母的语言。不过,我不想询问具体的练习,而是想出一个更笼统的猜想: 令和。我的猜想是:Σ={a}Σ={a}\Sigma=\{a\}L={af(n)∈Σ∗:n∈N0}L={af(n)∈Σ∗:n∈N0}L=\{a^{f(n)}\in\Sigma^*:n\in\mathbb N_0\} L is regular⇔∃x,y∈N0:f(n)=x⋅n+yL is regular⇔∃x,y∈N0:f(n)=x⋅n+yL\text{ is regular}\Leftrightarrow \exists x,y\in\mathbb N_0:f(n)=x\cdot n+y 这个问题以前见过科学的治疗方法吗?是“明显”正确/错误吗? 对我来说,显然是“,因为人们可以只建立一个DFA与”方向为真的状态,通过所述循环的状态后通过具有读状态和接受当且仅当在状态数。⇐⇐\Leftarrowx+yx+yx+yxxxyyyyyy

2
在计算机科学的背景下,“生产”一词最终如何成为“规则”一词的同义词?
我正在研究正式的语言和生产基础系统(rule-bases systems),我对为什么这两个词“生产”和“规则”在计算机科学的这么多上下文中含义相同感到有些困惑。 在英语中,它们似乎不是同一意思。我不是英语母语人士,但我知道一条规则是指某人在谈论人时不应该/不应该做的事情,或者如果重复多次会得到相同的结果,并且我们说它按某些规则起作用(它的工作方式由每次都相同的某些协议/过程定义)。 生产是指完全不同的东西...当前正在生产/生产的某些实物或软件的阶段。制作某种东西的行为,无论是物理的还是某种艺术品,一些写作,某些绘画,是由某人的身体或心理能力所制成的。我们说具体的东西产生了。 但是,在计算机科学中,这些代表英语完全不同的词在CS中表示同一件事。这个术语在CS中最终是如何相似的。 有某种计算机科学的词源词典。字典告诉我们计算机科学的术语最终是什么? 顺便说一句:有趣的事实:在此Stack Exchange站点中,既没有生产规则也没有规则。

3
无法确定的问题,它的否定是不可确定的
但是,许多“著名的”无法确定的问题至少是不可确定的,它们的互补性是不可确定的。最重要的一个例子可能是停顿问题及其补充。 但是,有谁能举一个例子,说明一个问题及其补充问题是不可决定的,而不是不可决定的?我想到了对角化语言Ld,但在我看来补语还不确定。 在那种情况下,这是否意味着Turing Machine M可以“丢失”一些应该识别的字符串,因为它们是我们要尝试识别的语言的一部分?

1
如何找到幂集的子集的最短表示形式?
我正在寻找解决以下问题的有效算法或NP硬度的证明。 令为一个集合,为的子集。找到一个最小长度的序列,使得对于每个,都有一个使得。ΣΣ\SigmaA⊆P(Σ)A⊆P(Σ)A\subseteq\mathcal{P}(\Sigma)ΣΣ\Sigmaw∈Σ∗w∈Σ∗w\in \Sigma^*L∈AL∈AL\in Ak∈Nk∈Nk\in\mathbb{N}{wk+i∣0≤i&lt;|L|}=L{wk+i∣0≤i&lt;|L|}=L\{ w_{k+i} \mid 0\leq i < |L| \} = L 例如,对于,单词是该问题的解决方案,因为对于存在,对于,。w = b a c { a ,b } k = 0 { a ,c } k = 1A={{a,b},{a,c}}A={{a,b},{a,c}}A = \{\{a,b\},\{a,c\}\}w=bacw=bacw = bac{a,b}{a,b}\{a,b\}k=0k=0k=0{a,c}{a,c}\{a,c\}k=1k=1k=1 至于我的动机,我试图表示一个有限自动机的边集,其中每个边都可以用输入字母中的一组字母来标记。我想存储一个字符串,然后在每个边缘保留一对指向该字符串的指针。我的目标是最小化该字符串的长度。

4
团体理论和形式语言的桥梁定理
是否存在某种自然或显着的方式来关联或链接数学组和CS 形式语言或其他一些核心CS概念(例如,图灵机)? 我正在寻找参考/应用程序。但是请注意,我知道半群语言和CS语言之间的联系(即通过有限自动机)。(有关半自动机的文献有没有看过“群自动机”?) 几年前,我见过一篇可能接近的论文,可以将TM转换表转换为二进制操作,在某些情况下有时甚至是一组操作,可以想象是基于TM状态表中的某种对称性。它没有特别探索,但也没有排除它。 而且,尤其是对于有关有限组分类的大量数学研究而言,它在TCS中是否具有任何意义或解释?这种庞大的数学研究大厦的“算法透镜”观点是什么?关于计算中可能存在的隐藏结构的“说明”是什么? 这个问题部分地受到其他一些注释的启发,例如: 在TCS中使用代数结构 格罗莫夫定理上的RJ Lipton

1
什么是语义?
有许多流行的语言。但是,计算机科学家告诉我们,为了确切,明确地理解那些语言的程序行为(例如证明其身份),我们需要将它们翻译成另一种易于理解的语言。他们称这种语言为“语义”。作者提出了许多语义之一。他们解释了结构的含义以及如何将语言翻译成它们。他们说,一旦您这样做,每个人都一定会理解您的程序。 看起来不错,但是我听不懂。他们是否告诉我们他们引入另一种语言来理解第一种语言?为什么我们比最初的理解得更好?为什么这种语义比这更好?为什么不立即学习C的语义而不是发明另一种语言来描述C的语义呢?语法也一样。为什么不就语法提出相同的问题? PS在评论中,我听到语义并不意味着另一种语言或对其的翻译。但是VHDL的形式语义学说,如果您仅以一种方式理解某些东西,那么您就不会理解它,并且如果我们提供一种语言将其翻译成另一种(已知)语言的机制,则可以指定“含义的含义”。也就是说,“语义是形式系统之间的关系”。Hennessy在《编程语言语义学》中说,当语义以BNF或语法图的形式提供时,语义允许对程序“含义”进行正式处理。如果不是语言,什么是正式系统? PS2我可以说将给定HDL程序的硬件综合成门的互连,这是语义提取的过程吗?之后,我们将(高级)描述翻译成我们理解的(低级)语言。

2
用固定语言对商进行封闭
我非常感谢您的帮助: 对于任何固定的我需要确定以下运算符下是否存在闭包:大号2L2L_2 一种[R(大号)= { X | ∃ ÿ∈ 大号2:x y∈ 大号}Ar(L)={x∣∃y∈L2:xy∈L}A_r(L)=\{x \mid \exists y \in L_2 : xy \in L\} 。一种升(大号)= { X | ∃ ÿ∈ 大号:X ÿ∈ 大号2}Al(L)={x∣∃y∈L:xy∈L2}A_l(L)=\{x \mid \exists y \in L : xy \in L_2\} 相关选项为: 常规语言在中关闭。A r,对于任何语言L 2一种升AlA_l一种[RArA_r大号2L2L_2 对于某些语言,常规语言在A l resp 下关闭。A r和某些语言L 2的常规语言不会在A l resp …



1
POSIX BRE可以表达所有常规语言吗?
似乎POSIX.1-2008定义的“基本正则表达式” 不支持替换a|b(尽管某些grep实现可以识别转义的版本\|)。 由于按定义,常规语言是根据联合来封闭的,这是否意味着POSIX BRE的表达能力不及有限自动机?还是有某种方法可以使用其他构造来模拟交替?

4
为什么在正则表达式中没有排列?(即使普通语言似乎能够做到这一点)
问题 没有简单的方法来获取正则表达式的排列。 排列:将单词 (“ aabc”)转换为另一个顺序,而无需更改数字或字母种类。w = x1个… xñw=X1个…Xñw=x_1…x_n 正则表达式:正则表达式。 进行验证: “不重复的正则表达式排列”假设这样做会更简单,那么答案将创建JavaScript代码而不是正则表达式。 “如何查找给定文本中给定单词的所有排列” –答案也不使用正则表达式。 “正则表达式匹配所有{1,2,3,4}而不重复” –答案使用了正则表达式,但它既不适应也不简单。 这个答案甚至声称:“正则表达式不能满足您的要求。它不能从字符串生成排列”。 我正在寻找的解决方案 它应具有以下形式: »aabc«(或其他任何可以使用左括号和右括号的内容) (aabc)!(类似于(abc)?,但最后还有另一个符号) [aabc]!(类似于[abc] +,但最后还有另一个符号) 这些解决方案的优势 他们是: 简单 适应性强 可重用 为什么这应该存在 正则表达式是描述常规语言语法的一种方式。他们完全有能力成为任何一种常规语言。 假设常规语言功能强大,可以进行排列(下面有证明)–为什么没有简单的方法来表达这一点? 所以我的问题是: (为什么)我的证明错了吗? 如果正确:为什么没有简单的方法来表达排列? 证据 正则表达式是记录正则语言语法的一种方法。他们可以描述任何常规语言的语法。 描述任何常规语言(字母表中字母数量有限)的另一种语法是非确定性自动机(状态数量有限)。 具有有限数量的字母,我可以创建此自动机:(示例。正式形式:请参见下文) 接受“ abbc”排列的语法: (很抱歉上面的数字,也许有人知道如何使这部分看起来更好) s-&gt;ah¹ s-&gt;bh² s-&gt;ch³ h¹-&gt;bh¹¹ h¹-&gt;ch¹² h²-&gt;ah¹¹(没有错字!等价) h²-&gt;bh²² h²-&gt;ch²³ h³-&gt;ah¹² h³-&gt;bh²³ …

3
只能使用2个正则表达式操作无法表达的常规语言
我以为所有常规语言都可以用正则表达式表示(如果某种语言是常规语言,则可以用正则表达式表示),但是有人告诉我,您需要所有这三种常规运算(并置,并集和星号)举行。 例如,有人告诉我,如果我只能使用union和concatenation regex操作(3个中的2个),那将是我不能仅用这两个描述的常规语言。 与Kleene明星和工会相同。有哪些例子?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.