paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Let Generalization, Polymorphic Recursion, and Variable Minimization in Boolean-Kinded Type Systems

Boolean-kinded 类型系统中的 let 泛化、多态递归与变量最小化
POPL 10(POPL)2026匹配度 2/10 · 该论文属于纯 PL 类型系统理论(Boolean-kinded HM、let 泛化、多态递归),未涉及 LLM/Agent、机器学习系统静态分析、浮点程序分析或贝叶斯程序分析等画像核心交叉方向。引用 1 inbox
Joseph A. Zullo
crossref: 2026-09-10

AI 速览

一句话:为 Boolean-kinded Hindley-Milner 扩展给出等式泛化与半统一算法,支持 let 泛化和多态递归,并最小化布尔类型变量。

将 Hindley-Milner(HM)类型系统扩展为 Boolean kinds 后可支持多种特性的类型推断,但局部 let 泛化与多态递归等经典机制在此类扩展中要么受限要么未知。本文针对这一问题,提出在任意布尔环中进行等式泛化(equational generalization)与半统一(semiunification)的过程,从而在 Boolean-kinded 类型推断中实现 let 泛化与多态递归。此外,作者开发了最小化受限布尔类型变量数量的方法,以保持这些系统中的类型表示紧凑。论文以可空引用类型(nullable reference types)作为 Boolean-kinded HM 扩展的实例,并说明如何利用所提出的过程来支持 let 泛化与多态递归。

问题
Boolean-kinded Hindley-Milner 类型推断扩展缺乏对 let 泛化和多态递归等经典类型系统机制的支持。
方法
在任意布尔环中定义等式泛化与半统一过程,并设计最小化受限布尔类型变量数量的方法。
评估
以可空引用类型为例进行示例性说明,展示所提过程如何支持 let 泛化与多态递归。
原文摘要(Abstract)

Recent research has demonstrated the effectiveness of extending the Hindley-Milner (HM) type system with Boolean kinds to support type inference for a wide variety of features. However, the means to support classic type system provisions such as local let generalization and polymorphic recursion is either limited or unknown for such extensions. This paper contributes procedures for equational generalization and semiunification in arbitrary Boolean rings, enabling let generalization and polymorphic recursion in Boolean-kinded type inference. Additionally, methods to minimize the number of bound Boolean type variables are developed to keep types small in these systems. Boolean-kinded HM extensions are exemplified with nullable reference types , and how to use the developed procedures to support let generalization and polymorphic recursion is outlined.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@article{Zullo26,
  title = {Let Generalization, Polymorphic Recursion, and Variable Minimization in Boolean-Kinded Type Systems},
  author = {Joseph A. Zullo},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {10},
  number = {POPL},
  year = {2026},
  doi = {10.1145/3776644}
}