38、安全类型语言的设计与实现

安全类型语言的设计与实现

1. 标签子类型与标签单子

在安全类型语言中,标签的子类型关系 $\Delta\vdash\ell\preceq\ell$ 构成一个格,这使得语言拥有标签单子 $t{\ell}$ 和 $m{\ell}$ 的格结构。由于标签和类型处于同一语法类别,使用类型判断 $\Delta\vdash t :: k$ 来排除像 bool→H bool{bool} 这样的非法类型。

1.1 类型系统防止信息依赖

类型系统通过以下规则防止低级计算依赖高级计算:
- $\Delta; \Gamma \vdash m : t$
- $\Delta\vdash\ell:: L$
- $\Delta; \Gamma \vdash m{\ell} : t{\ell}$
- $\Delta; \Gamma \vdash m_1 : t_1{\ell}$
- $\Delta; \Gamma, x:t_1 \vdash m_2 : t_2$
- $\Delta\vdash\ell\ll t_2$
- $\Delta; \Gamma \vdash \text{bind } x = m_1 \text{ in } m_2 : t_2$

标签单子 $m{\ell}$ 用标签 $\ell$ 标记计算 $m$,限制其与程序其余部分的交互。 bind 操作将 $m_1$ 计算为值 $v{\ell}$,并将 $v$ 替换 $m_2$ 中的 $x$。

1.2 标签保护判断

通过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值