什么是运行时?我并不是说"在运行时"=因为程序/脚本正在运行.我的意思是
<your-interpret-language-here>运行时
interpreter compiler-theory language-theory terminology interpreted-language
我正在尝试创建一个后缀为中缀转换器,我无法为后缀公式创建语法.我一直在寻找它一段时间没有成功..
我可以使用什么语法来识别有效的后缀表达式?
我需要的标记是:number,+,*和^(POW).
在Java中,构造函数不能是递归的.编译时错误:"递归构造函数调用".我们假设我们没有这个限制.
要记住的事情:
允许递归构造函数会有什么好处吗?
我正在寻找一种算法,该算法可以输出正则表达式和上下文无关文法的交集是否为空。我知道这个问题是可判定的,但是,我找不到任何示例实现(在伪代码中)。
如果可能的话,有人可以在 .NET 中为我提供这样的算法,但这不是必须的。这个问题也被称为“规则交集”。谷歌搜索只给了我几何算法或关于它的理论。
编辑:
任何人。我真的坚持下去了,还没有找到任何东西。
不知道我是否应该在这里或程序员那里问这个问题,但无论如何
在Scala中,可以使用中缀语法编写方法调用,即省略点和parens.
举个例子,你可以这样做:
lst foreach println // equivalent to lst.foreach(println)
Run Code Online (Sandbox Code Playgroud)
当然人们会认为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?
功能类型A - > B在某种意义上不是很好.虽然功能是一等值,但由于效率问题,通常无法自由操作它们.你不能应用太多的转换(A - > B) - >(C - > D),在某些时候你必须计算一个值.
显然这是由于 - >的非严格性质.
有很多技巧可以处理Double - > Double类型的函数.可以将它们表示为给定某个基础的向量,其可以包括trig函数,多项式等.
是否有任何一般技巧来绕过A - > B类型的低效率?
或者替代 - >?
好吧,我有一个练习来构建一种java编译器.我不会在细节上得到太多.基本上,我想知道是否可以使用可以识别结束括号的正则表达式.例如,这将是一个合法的输入
void foo(){
asd
}
Run Code Online (Sandbox Code Playgroud)
这不会
void foo(){
asd
if (){
asd
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,2个开启者({)只有1个close(}),这使得输入无效.有没有办法使用正则表达式并确定出现次数匹配?
我想知道所有无限的语言都无法决定吗?
它们必须是正确的,因为TM试图决定一种无限的语言会永远循环下去,这使它成为矩形,而不是决定者。
多谢你们。
grammar ×2
java ×2
algorithm ×1
constructor ×1
function ×1
haskell ×1
interpreter ×1
lisp ×1
performance ×1
racket ×1
recursion ×1
regex ×1
scala ×1
terminology ×1