formal-languages相关内容

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

我知道如何将它们相互转换,但从未真正了解它们的应用程序是什么.通常的中缀操作可读性很强,但是它在哪里失败导致了前缀和后缀表示法的开始 解决方案 中缀表示法对于人类来说很容易阅读,而前/后缀表示法对于机器来说更容易解析.前置/后置表示法的一大优势是永远不会出现诸如运算符优先级之类的问题. 例如,考虑中缀表达式1 # 2 $ 3.现在,我们不知道这些运算符的含义,因此有两种可能的对应后缀 ..

创建一个单独的“布尔表达式";动态语言规则

我正在 Bison 中为一种简单的动态类型语言创建语法.我有一个“通用"expression 规则,它有点类似于 C 中右值的概念;表达式出现在赋值的右侧,它们也可以作为参数发送给函数等.规则的一个大大简化的版本如下: 常量表达式: TOK_INTEGER_CONSTANT|TOK_FLOAT_CONSTANT|字符串字面量;表达: 常量表达式|标识符|布尔表达式|booleanExpressi ..

DTD 与 XSD 定义的 XML 语言的范围

下列命题是否成立:对于每个 DTD,都有一个定义完全相同语言的 XSD,对于每个 XSD,都有一个定义完全相同语言的 DTD.或者换一种说法:任何 DTD 定义的语言集合正是任何 XSD 定义的语言集合? 稍微扩展一下这个问题:XML 文档基本上是一个大字符串.语言是字符串的集合.例如,所有 MathML 文档的(无限)集合是一种语言,所有 RSS 文档的集合也是如此,等等.MathML ( ..
发布时间:2022-01-09 22:13:39 其他开发

为什么不能用 LR(1) 解析器解析 C++?

我正在阅读有关解析器和解析器生成器的文章,并在维基百科的 LR parsing -page 中找到了此语句: 可以使用 LR 解析器的某些变体来解析许多编程语言.一个值得注意的例外是 C++. 为什么会这样?C++ 的什么特殊属性导致它无法使用 LR 解析器进行解析? 使用google,我只发现C可以用LR(1)完美解析,但C++需要LR(∞). 解决方案 Lambda ..
发布时间:2021-12-01 15:17:44 C/C++开发

两种不同字母的语言的交集是什么?

我对此进行了一些谷歌搜索,但没有真正确定的弹出. 假设我有两种语言 A 和 B. A = { w 是 {a,b,c}* 的子集,使得 w 的倒数第二个字符是 b } B = { w 是 {b,d}* 的子集,使得最后一个字符是 b } 人们如何定义这一点?我认为字母表将是两者的结合,使其成为 {a,b,c,d} 但除此之外,我不知道如何对此进行 DFA. 如果有人能对 ..
发布时间:2021-09-07 18:31:11 其他开发

什么是常规语言?

我正在尝试理解语言级别的概念(常规、上下文无关、上下文敏感等). 我可以很容易地查到这一点,但我发现的所有解释都是一堆符号和关于集合的内容.我有两个问题: 您能否用文字描述什么是常规语言,以及这些语言有何不同? 人们从哪里学习理解这些东西?据我了解,它是形式数学?我在大学有几门课程使用了它,几乎没有人理解它,因为导师只是假设我们知道它.我在哪里可以学习它,为什么人们“期望"在这么 ..

计算前导集和尾随集以实现无上下文语法

我正在寻找一种详细的算法,该算法描述如何在上下文无关的语法中为非终结符生成前导和尾随集. 我发现了这样的东西: https://pl.scribd.com/doc/51358638/16/Operator-优先关系但我不确定它是如何工作的.(请参阅第20页) 假设我们有作品: A-> YaZ |B B-> b 然后,据说Leading(A)= {a},Leading( ..
发布时间:2021-04-24 19:37:56 其他开发

如何确定上下文无关的语法是否描述了常规语言?

鉴于任意上下文无关的语法,我如何检查它是否描述了常规语言? 我不是在寻找考试“技巧".我正在寻找可以编写的万无一失的机械测试. 如果有帮助,这是我可能会收到的CFG示例.具体来说,请注意,答案必须比查找左或右递归复杂得多,因为存在另一种递归并不自动表示语法是不规则的. S:A B C D X答:A:B:b BB:C:c C cC:D:D d DD:dX:x YX:Y:y XY: ..

XML的形式语法

我正在尝试使用C构建XML文件的小型解析器.我知道,我可以找到一些完成的解决方案,但是,对于嵌入式项目,我只需要一些基本的东西.我正在尝试创建用于描述XML的语法,该语法不带属性,而只是带标签,但似乎无法正常工作,我无法弄清原因. 这是语法: XML : FIRST_TAG NIZ NIZ : VAL NIZ | eps VAL : START VAL END ..
发布时间:2020-11-20 04:58:39 其他开发

以字符串形式读取数字

我是R编程的新手,我想在R中读取文本文件. 其中一列,可以说第7列是数字,并且每个数字都代表一个ID,我希望R像将它们当作字符串一样读取它们.并计算每个ID在文件中出现的次数(这样以后我就可以将每个ID的频率分配给给定的ID,以供以后使用) 我尝试过 mydata ..
发布时间:2020-11-05 19:16:16 其他开发

DTD与XSD定义的XML语言范围

是否存在以下命题: 每个DTD都有一个定义完全相同的语言的XSD,每个XSD都有一个定义完全相同的语言的DTD。或者换种说法:任何DTD定义的语言集合就是任何XSD定义的语言集合吗? 稍微扩展一下这个问题:XML文档基本上是一个大字符串。语言是字符串的集合。例如,所有MathML文档的(无限)集都是一种语言,所有RSS文档的集也是如此,依此类推。 MathML(RSS,...)也是所有XM ..
发布时间:2020-10-27 00:16:29 其他开发

我如何找出这种无上下文语法生成的语言?

我正在处理以下语法: G =({S,A},{a,b}, P,S) P = {S-> aAb,S-> bAa, A-> aSa, A-> S, A-> epsilon} 我需要找出L(G)。 问题是,我发现语法中的单词具有以下形式: 以a开头并以b结束,或者以b开头并以a结束,并且在这些字母之间,组合:ab,ba,aaba,abaa;然后通过在中间的a和b之间插入 ..
发布时间:2020-10-08 23:32:57 其他开发

构造一个CFG

L1 = {a ^ i b ^ j | i,j> = 0} 我的尝试: S = SA | e A = aAB | e B = bB | e 我无法确认我的答案,这是正确的吗? 解决方案 这是不正确的,因为无法获得单个“ b”(或任何数量的“ b”而没有任何形式) (我认为您可以通过只更改一个字母来解决它; o) PS ..
发布时间:2020-10-08 23:30:11 其他开发

LR(1)-物品,向前看

我在理解LR(1)-项目中的超前原理方面遇到困难。 以一个具有以下语法的示例为例: S-> AB A->抗体b B-> d 然后,第一个状态如下所示: S-> .AB,{向前看} A-> .aAb,{向前看} A-> .b,{向前看} 我知道向前看是什么,但我不知道如何计算它们。 我已经在Google上搜索了答案,但找不到 ..

为什么普通语言的补语仍然是普通语言?

根据我的教科书,L1的补语= A *-只要L1是常规语言,L1就是常规语言。 A *不包括上下文无关的语言,上下文敏感语言和递归枚举语言? A * -L1也将包括所有这些,不是吗? 在有限状态机的表示下,我理解为什么补语仍然是常规语言。但是,我无法理解其背后的理论。 此外,A *-L1 = A *交集补(L1)。用补语定义的重语不是用补语来定义补语吗?我真的不明白这怎么可能有效。 ..

递归集与递归函数

递归集和递归函数有什么区别? 解决方案 递归函数和递归集是可计算性理论中使用的术语。 Wikipedia对它们的定义如下: 一组自然数被称为可计算的集合(也称为可确定的,递归的或图灵的)可计算集合),如果有一个图灵机(给定数字n),则在集合中包含n时停止输出1,如果集合中没有n则停止输出0。如果存在一个图灵机,在输入n处暂停并返回输出f(n),则从自然数到其自身的函数f是递归或(图灵 ..
发布时间:2020-10-07 18:37:08 其他开发

现代正则表达式引擎可以解析哪种形式的语言?

在这里,人们有时会说类似“您不能用正则表达式解析X,因为X不是正则语言”之类的话。但是,据我了解,现代正则表达式引擎不仅可以匹配 Chomsky的意义的正则语言。我的问题: 给出了支持 反向引用的正则表达式引擎 li> 无限宽度的环视断言 递归,例如(?R) 它可以解析哪种语言?它可以解析任何上下文无关的语言吗?如果不能,那么反例是什么? (确切地说,“解析”是指“构建 ..
发布时间:2020-10-07 18:30:53 其他开发

无上下文语言联盟

无上下文语言集合的联合是否总是无上下文关系?证明您的答案是正确的.... 我知道答案是肯定的,但是我怎么证明呢? 解决方案 要显示上下文无关语言的有限联合是上下文无关的,您只需要构建上下文无关的语法对于联合语言,就像您要证明两种无上下文语言的联合是无上下文的一样。 如果G1,...,GN是您拥有的N种无上下文语言的无上下文语法,请重命名每个语法中的所有符号(添加一个下标只是为了 ..