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 都不行
Forwarded from Deleted Account
JetBrains 的 MPS 用过没 🤔
MPS 是干什么的来着,好用吗
Kotlin 前端也是用 MPS 设计出来的?
MPS 是干什么的来着,好用吗
Kotlin 前端也是用 MPS 设计出来的?
Forwarded from Deleted Account
听说函数式编程(类型论的那个级别)里人会提到 "lift",据说就是“把局部变量变成参数”
把 lambda return value 给 lift 成局部函数 算不算 lift?
你觉得带返回值的 {} block 好不好?
—
听说中缀链的 动态优先级解析 在一些编译原理群里会被视为问题看待
这个问题有许多解决方案吗? 能够用递归或者栈解决吗? 和逆波兰表示法 有怎么样的关系呢……
如果不想学那么多,有没有好用而且简单的方法可以解决这种问题呢?
把 lambda return value 给 lift 成局部函数 算不算 lift?
你觉得带返回值的 {} block 好不好?
—
听说中缀链的 动态优先级解析 在一些编译原理群里会被视为问题看待
这个问题有许多解决方案吗? 能够用递归或者栈解决吗? 和逆波兰表示法 有怎么样的关系呢……
如果不想学那么多,有没有好用而且简单的方法可以解决这种问题呢?
Forwarded from Deleted Account
Python 还没有 lambda 表达式的时候,所用的
def fn: ...def local_fn: return local_fn 的那种方式Forwarded from Deleted Account
是一种闭包,因为可以访问 定义作用域的变量
lift 到底是什么含义?为什么会和子程序/作用域有关?
lift 到底是什么含义?为什么会和子程序/作用域有关?