深入计算机的世界分享 http://blog.sciencenet.cn/u/qizhwei 虚拟化、云计算、Dev-Test-Ops

博文

类型系统 和unification/semi-unification算法-3

已有 6019 次阅读 2011-12-11 10:21 |个人分类:学术探讨|系统分类:科研笔记| 类型系统, unification, semi-unification

正好CS 15-417 HOT Compilation这门课本周结束,最后一课Karl Crary教授讲到了type inference。 结合这个主题,将unification算法再review一边。 Karl Crary教授说到了不能确定SMLtype inference算法是否decidable。因为它对HM算法进行了扩展。

 

Unification算法主要分为一阶(first order)和高阶(higher order)。 一阶的算法主要处理变量类型,例如,我们可以推导某个函数的参数的类型。而函数符号本身是不可变量化的,是常量,在重写逻辑里面也称为项代数(term algebra),也称为语法Unification;在SMT模型求解器里面称为未解释的函数符号(EUF, equality with uninterpreted function),是非常重要的一类等式模型。 如果加上等式理论,称为 E-unification,也称为语义Unification,因为用到等式推导来确定两个项是否相等(或函数)。一阶Unification也比较简单,也是一个decidable的算法。


Higher order对应的是带类型的lambda演算,因为函数本身也是一个变量,这就引入了自由变量与受限变量,scoping以及α、β、η等规约规则,这些概念的引入一方面大大增加了Unification的复杂性,但同时也能刻画更复杂的系统,现在的推理证明系统(λPrologTwelf)就是建立在高阶Unification的基础上。一般说来,这算法是undecidable。但在实践中用得很好,也可以采用某些限制(例如,规定两个项中必须有一个是closed的),得到一个受限的decidable算法。


关于算法的一般说明就到这里,回到Unification算法,其难点主要在于两点,1是多态,polymorphism2是递归, recursion。对于一阶unification,如果同时引入这两点,就成为一个undecidable算法,也成为semi-unification,也对应上文提到的Microft-Milner类型系统。计算机科学家一开始没有意识到这一点,因为毕竟都在一阶系统里面,从直观上看也很想象存在一个undecidable算法。 具体一个例子可以在Andrew W. Appel   的编译器“虎书”《现代编译原理》可以找到

let function blowup<e> (i:int, x:e) :e =

    if i = 0 then x

    else blowup<list<e>>(i-1, list<e> {head = x, tail =nil}).head  

in blowup<int> (N,0)

这里的e类型变量,一开始是int,然后是list<int>, list< list<int>>等类型递归展开。因为是静态无法确定N的大小,所以我们无法确定应该展开多少次。

对于这个问题,一般的做法是不允许同时有多态和递归,这样就避免这个问题,但对于一般的类型系统,如果确实存在类似的类型,算法本身就不会终止,从而得到了一个semi-unification算法。(semi-unification算法的本身定义是包括等式和不等式的unification算法,但也正好等价于MM类型系统。)

由此,我们得到了类型系统的三个基本算法(first ordersemi-unificationhigher-order)。这也说明了类型系统在计算机科学里面的重要地位,同时在逻辑、人工智能、定理证明、自然语言处理里面,unification也有十分重要的应用。



https://blog.sciencenet.cn/blog-279072-517254.html

上一篇:递归,尾递归和CPS风格
下一篇:西行记-9:老美的素质和信用
收藏 IP: 108.17.80.*| 热度|

1 黄富强

该博文允许注册用户评论 请点击登录 评论 (2 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-1 11:28

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部