问题标签 [language-theory]
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.
logic - 转换为 XOR 合取形式
XOR 合取形式定义如下:(a XOR b) and (c XOR d)...等
SAT-XCF 是由可满足的先例(XOR 合取)表达式定义的语言。
我想知道 SAT-XCF 是不是 NP 难?因此,是否有一个函数能够将任何可满足的布尔表达式转换为可满足的 XOR 合取形式?
非常感谢您的贡献。
c# - Reason for precedence of instanceof/is
In both C#/Java the operator precedence of is
respectively instanceof
leads to some ugly necessary parenthesis. For example instead of writing if (!bar instanceof Foo)
you have to write if (!(bar instanceof Foo))
.
So why did the language teams decide that !
has a higher operator precedence than is/instanceof? Admittedly in C# you can overwrite operator!
which would lead to a different result in some situations, but those situations seems exceedingly rare (and non-intuitive in any case), while the case of checking if something is not a type or subtype of something is much more likely.
javascript - 为什么 Google 声称 Javascript 闭包很危险?
我刚刚阅读了 Google JS 风格指南的这一点:http: //google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml ?showone=Closures#Closures
我并不完全理解。虽然 element.onclick 具有分配给它的功能,但一切都很好。没有垃圾收集,但这没关系,因为我们仍在使用这些对象。
一旦我们分配
然后闭包将被垃圾收集,因为元素不再指向它。问题出在哪里?
context-free-grammar - 由上下文无关语法生成的语言?
如何找到上下文无关语法生成的语言?对于生成的语言,我如何证明该语言属于该语法。
请给出一些提示,或者一个具体的例子。我遇到了 [this post](如何弄清楚这种上下文无关语法生成的语言?),但它并没有太大帮助。
compiler-construction - 明确的上下文无关语法
我正在阅读上下文无关语法,我遇到了模棱两可的语法。如果 CFG 生成的语言具有多于 1 个解析树,则 CFG 是一种二义性语法。有什么方法可以找出或证明语法是明确的。一般来说,我可以测试一些由 CFG 生成的语言,并检查是否从该语言生成了超过 1 个解析树,以表明语法是模棱两可的。但是我如何检查或证明给 CFG 是明确的?
scala - 理解 scala 中的中缀行为
不确定我应该在这里还是在Programmers上问这个问题,但无论如何
在 Scala 中,可以使用中缀语法编写方法调用,即省略点和括号。
例如,您可以这样做:
自然地,人们会假设它lst map _.toString
会被评估为lst.map(_.toString)
,这相当于lst.map(x$1 => x$1.toString)
但是lst map _.toString
放入 repl 会产生一个令人惊讶的结果,它被评估为((x$1) => sList.map(x$1.toString))
导致方法调用发生故障。
那为什么呢?为什么写作时不再适用简单的a.f(b)
等价规则?a f b
a f _.b
javascript - 对象属性应该在javascript中声明吗?
在 JS 函数中,我将使用一个 object resultModel
,它有两个属性idArray
和nameArray
. 宣布这一点的正确方法是什么?
目前我var resultModel
在函数顶部声明了该对象以及其他变量,但我只是通过在函数后面的循环中为它们分配一个值来开始使用这些属性:
当然,我知道var
关键字对于作用域很重要,并且由于在函数中声明了“根”标识符,因此我避免了任何全局篡改,这一切都很好。但我期望值的属性也应该以某种方式声明,除了范围之外的其他原因 - 内存分配突然想到,可能通过 JSDoc 注释进行类型提示,可读性和声明的绝对完整性。
所以,我的问题是:我应该声明这样的属性吗?在这种情况下,这样做的正确方法是什么?
programming-languages - 给定语法是否模棱两可?
考虑下面的语法......
假设我们用 '!' 扩展 BEXP 通过更改 bfact 规则来进行否定运算符如下:-
让我们将此扩展语法称为 BEXP2。我如何证明它是模棱两可的?
grammar - 为什么不能使用上下文无关语法定义类似 XML 的元素?
谁能向我解释为什么不能使用上下文无关语法(Chomsky、EBNF 或语法图表)定义类似 XML 的元素?
regex - 包含 a 和偶数个 b 的字符串的正则表达式
如何定义正则表达式以具有以下语言?
L = {w ∈ {a, b}* | w 有偶数个 b }
我试图创建相关的自动机:
从那我尝试应用该算法从 DFA 获得常规 espression,我得到了这个公式:a*ba*b
。
这可能是正确的答案吗?