TypeScript类型系统:必要设计还是过度复杂?
源自63位全网作者
06-06 13:29
精选参考来源
1
终于比较清晰的理解了线性类型。理解线性类型应该以理解依赖类型和马丁洛夫相等为前提。而会话类型以线性类型为基础衍生。到这里基本上就把语法方法膨胀到了和语义方法交锋的边界了。Curry,Howard,de Bruijn,Martin Lof,Girard,Huet,Coquand,这一代人真的是盖世传奇。
2
计算机语言是逻辑系统还是计算系统?这是个很有意思的话题。现代计算机语言的类型系统,试图对用户而言是黑盒,即typing rule和type checker是黑盒存在,而且是强制性的。但是不可否认的一个事实是,现代「高级」计算机语言无法表达逻辑,无法表达逻辑等同于无法表达程序的规范(specification)。类型系统在一定程度上充当这个角色但是,即使象idris那样激进到把类型检查的部分证明阶段开放给用户填充,它仍然有两大问题:1 类型检查始终不是语义证明2 类型系统只能使用构造逻辑,而大量语义证明需要经典逻辑;换句话说即使把type checker给用户当证明器用,逻辑系统仍然弱了。在非常大的意义上,Curry的illative combinatory logic(icl)处处透露着dangerously inconsistent的气息,象Stravinsky的春之祭一样dangerously modern。豆包也把Stravinsky解释成现代派音乐的代表人物,但是在Greenberg的Lecture里,Stravinsky跟现代根本不搭边,属于讹传。icl也是如此。
全部
来源
来源
内容由AI生成
0
0
0评论
当前文章无评论,是时候发表评论了
提示信息
取消
确认
评论举报
已收藏
去我的收藏夹