34、隐式类型高阶语言中的类型错误切片技术

类型错误切片技术在高阶语言中的应用

隐式类型高阶语言中的类型错误切片技术

1. 表达式约束集分析

考虑如下表达式结构:

let
    val x1 = lexp
in
    let
        val x2 = f x1 x1
    in
        ...
        let
            val xn = f xn−1 xn−1
        in
            f xn xn
        end ... end

最终得到的约束集包含 lexp 约束集的 2n 个变体。若 lexp = (fn x => x) f 的类型方案假定为 (∀a.∀b. a -> b -> a -> b) ,则整个表达式的主类型方案包含 2(n + 1) 个不同的类型变量。需要注意的是,在小型表达式语言中,Hindley/Milner(SML)类型可判定性是指数时间完备的。

2. 寻找最小不可解约束集

定义函数 labels(C) = { l | (∃ty, ty′)((ty = l== ty′) ∈C) } ,它将原子标记的约束集映射到相关标记集。若约束集 C 有不可解子集 C′ 使得 L = labels(C′) ,则标记集 L <

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值