我正在尝试理解常规语言。 我在这里找到了这个问题https://www.sanfoundry.com/automata-theory-multiple-choice-questions-answers/ 是L = {a^ib^i | 0<i<5} L = {a^ib^i | 0< ...
我正在尝试理解常规语言。 我在这里找到了这个问题https://www.sanfoundry.com/automata-theory-multiple-choice-questions-answers/ 是L = {a^ib^i | 0<i<5} L = {a^ib^i | 0< ...
我对计算理论和自动机有疑问。 是在编程语言终端符号或非终端符号中声明的变量。 ...
我只是好奇 ((a*| b*)bb)* 是否意味着在内括号中使用的任何数量的 a 或 b 必须是固定的。 就像如果我有 aabb,我不能用不同数量的 a 来跟随它? ` abbaabb 或 bbbabb 或 bbbaaabb 等是否属于正则表达式? ...
我一直在努力寻找一种使用TryParse的自然方式,因为我一直希望它能够以相反的方式工作(即返回解析的值并发出 boolean 以判断输入是否解析)。 例如,如果我们采用Parse的基本实现,则返回值是解析后的输入: 这工作正常,直到它获得一个无法解析的值,此时它完全合理地抛出异常。 对我来说,选 ...
让树数据结构定义如下: 一棵树有一个节点作为它的根。 节点要么是叶子节点,要么是具有一个或多个节点作为其子节点的内部节点。 在某种伪面向对象编程语言中,我们可以定义这样的树: 现在我们可以定义两个函数,'bad_code' 和 'good_code'。 函数 'bad_code' 不会编译, ...
大多数资源在线调用=(和+ =,-=等)用于赋值运算符(对于python)。 这在大多数语言中都是有意义的,但是在python中却没有。 一个运算符采用一个或多个操作数,返回一个值,并形成一个表达式。 但是,在python中,赋值不是表达式,并且赋值不会产生值。 因此,=不能是运算符。 ...
我从几个来源了解到 LL(1) 语法是: 毫不含糊, 不是左递归, 和,确定性的(左分解)。 我无法完全理解的是为什么上述内容适用于任何 LL(1) 语法。 我知道 LL(1) 解析表将在某些单元格中有多个条目,但我真正想要的是以下命题的正式和一般(没有示例)证明: 左递归 (1 ...
问:证明L = {ww | w∈{0,1} *}不是上下文无关的 我的解决方案: 假设L是上下文无关的 使其抽水长度为P 从而, 字符串= 0 ^ P 1 ^ P 0 ^ P 1 ^ P 设P = 2,S = 00 11 00 11 S可分为uv ^ i ...
我正在用C ++实现编程语言,我正在进入AST生成阶段。 我想使用三步程序: 承认声明的类型; 将标记与lvalues rvalues和节点中的表达式分离为临时和本地AST; 设计并将其添加到全局AST。 以下是为变量声明提供的内容,例如: 临时表 ...
有时我发现自己在扫描仪中备份。 这是一个典型的例子: 在上面处理JSON数组的扫描程序中,数组中的第一个元素可能会丢失,在这种情况下,扫描程序会首先遇到逗号,否则它将遇到一些将开始值的字符。 因为主循环总是从前进开始,所以如果遇到非逗号字符,那么我将备份,使其成为第一个字符。 ...
我正在学习Coq,我想用它来形式化正则语言理论,特别是有限自动机。 假设我有一个自动机结构,如下所示: 其中state是归纳类型: 并且类型终端终端是 我正在尝试定义它以便稍后我将能够概括任何常规语言的定义。 现在,我想构建一个识别语言(a * b *)的自动机,它是 ...
我对Coq有点陌生,并且正在尝试对Coq中的常规语法进行一些形式化。 假设我有一个归纳类型,如下所示: 表示(a* b*)语法的推导规则。 假设我要提取它们以供以后使用。 有什么办法可以将其存储在列表列表中吗? 例如,我想要一个可以返回我的程序[[S [inr a; inl S] ...
假设我有一种类似于algol的语言,具有静态类型和以下代码: 其中a是浮点数, b是整数, c是双精度数,而d是长整数。 然后,该语言会将d转换为long以便使用c进行运算,将b为double以便使用c*d结果进行运算。 因此,此后, b+c*d的双精度结果将转换为float,以将结 ...
我最近开始学习正则表达式,并试图为上面的问题写一个。 如果限制只放在一个字母上(例如不超过2“b”),那就不难了。 然后答案是:a * c *(b |ε)a * c *(b |ε)a * c * 但是对于2“b”和3“c”,“a”之间可能的排序总数是24(5选3),所以写一个正则表 ...
如何定义正则表达式以使用以下语言? L = {w∈{a,b} * | w的b为偶数} 我试图创建相关的自动机: 然后我尝试应用该算法从DFA获取常规表达式,并得到以下公式: a*ba*b 。 这是正确的答案吗? ...
谁能向我解释为什么无法使用无上下文语法(Chomsky,EBNF或语法图表)定义类似XML的元素吗? ...
考虑下面的语法... 假设我们用'!'扩展BEXP。 通过更改bfact规则进行求反的运算符,如下所示: 我们将此扩展语法称为BEXP2。 我如何证明它是模棱两可的? ...
在一个JS函数,我将使用对象resultModel ,具有两个属性idArray和nameArray 。 宣告这一点的正确方法是什么? 目前,我在函数顶部用var resultModel以及其他变量声明对象,但是我只是通过稍后在函数的循环中为它们分配值来开始使用属性: 当然,我知 ...
不确定我应该在这里还是在Programmers上问这个,但无论如何 在Scala中,可以使用中缀语法编写方法调用,即省略点和括号。 例如,您可以执行以下操作: 自然地,人们会假设将lst map _.toString评估为lst.map(_.toString) ,这等效于ls ...
我正在通过Context Free Grammar阅读,我遇到了模棱两可的语法。 如果CFG生成的语言有超过1个解析树,那么CFG就是一个含糊不清的语法。 有什么方法可以找出或证明语法是明确的。 一般来说,我可以测试CFG生成的一些语言,并检查是否从该语言生成了多个解析树,以显示该语法是不 ...