6、轻量级 Java 的函数式类型分配

轻量级Java函数式类型分配

轻量级 Java 的函数式类型分配

1. 名义类型系统概述

在名义类型系统中,类的类型检查仅进行一次,其字段和方法声明的类型是静态、唯一的,并在调用时使用。同时,我们在工作中不考虑类型转换操作。使用类型转换类似于程序员承诺被转换的表达式在运行时会计算为具有指定类(或其子类)的对象,因此为保证类型安全,需要在运行时进行形状检查。例如:

(C) new D(...) → new D(...)
(D <: C)

检查完成后,类型转换操作将消失。虽然类型转换对于编程便利性和实现重载方法的正确行为至关重要,但我们暂不考虑它。

2. 语义类型分配

2.1 语义类型定义

语义类型系统基于 λ - 演算的严格交集类型分配系统,并受 ς - 演算的谓词系统影响。我们定义的类型可以描述表达式(或表达式求值后的对象)的能力,包括可对其执行的操作(如访问字段或调用方法)以及这些操作的结果,同时使用类型变量跟踪方法输入和输出之间的依赖关系。

语义类型和严格类型的定义如下:

φ, ψ ::= ω | σ | φ ∩ ψ
σ ::= ϕ | C | ⟨f:σ⟩ | ⟨m:(φ1, ..., φn)→σ⟩ (n ≥ 0)

其中, ϕ 是类型变量, C 是类名, ω 是通用类型常量,也是类型层次结构的顶层元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值