Forwarded from Deleted Account
如果只是实现解释器不带虚拟机,会不会显得太幼稚?
如果只有到高级语言的后端连作用域都不处理,会不会显得太前端?
如果没有实现 native 或者 bytecode 后端,是不是会显得不够好看呢
如果只有到高级语言的后端连作用域都不处理,会不会显得太前端?
如果没有实现 native 或者 bytecode 后端,是不是会显得不够好看呢
Forwarded from Deleted Account
啊,这么说蛮有道理的
可是 对求值来说 顺序也是最终程序要编码实现的一种语义吧
记得 LLVM IR 里 SSA,虽然重要的是“内联”表示 val ref,但其实有副作用的话是不能不顾赋值顺序的
可是 对求值来说 顺序也是最终程序要编码实现的一种语义吧
记得 LLVM IR 里 SSA,虽然重要的是“内联”表示 val ref,但其实有副作用的话是不能不顾赋值顺序的
Forwarded from Deleted Account
by-name 实现起来不好吧,都得传 block 进去,把那东西内联……
block closure 的实现有什么注意点呢
block closure 的实现有什么注意点呢
Forwarded from Deleted Account
就是说 by-value 调用前优先顺序求值?
function wtf() {
if [ a = 0 ]; $1
else; $0
}Forwarded from Deleted Account
原来 shell 都是 call-by-name 的,直接传递代码字符串的引用,而且没局部作用域、没闭包
Forwarded from Deleted Account
$1 $2 $3 是局部变量吗?
还是我
还是我
some_fn a b c 的时候赋值的全局变量呢?Forwarded from Deleted Account
你觉得就解析器而言,是带 tokenizer 的好些还是 scannerless parsing 好些? 🤔
我听人说 parsing 和 type inference 的本质都是 unification,你怎么看?
我听人说 parsing 和 type inference 的本质都是 unification,你怎么看?
Forwarded from Deleted Account
可是 scannerless parsing 更符合直觉,如果加上 tokenizer 的话要维护两个级别的输入流
Forwarded from Deleted Account
tokenizer 的结果往往不好看,而且即便是类似 coroutine 一样的 nextToken() Sequence 模式,tokenizer 也会造成一些 SourceLocation 对象的资源浪费
从性能的角度,tokenizer 更容易做优化吗?
从性能的角度,tokenizer 更容易做优化吗?
Forwarded from Deleted Account
我觉得……
Java 什么的当然首推 ANTLR,语法还算可以,工具也不错
JavaScript 我用过 PEG.js 和 Ohm,我觉得 Ohm 比较直观,虽然实现语义的话很麻烦
Bison/YaCC 都不行
Java 什么的当然首推 ANTLR,语法还算可以,工具也不错
JavaScript 我用过 PEG.js 和 Ohm,我觉得 Ohm 比较直观,虽然实现语义的话很麻烦
Bison/YaCC 都不行