一句话:提出动态区域所有权模型,为动态类型语言提供可解释的并发安全所有权检查。
并发程序组件的交互比串行情形更复杂,核心问题是未受限的共享可变状态;已有所有权机制可将竞态转化为确定性失败,但主要面向静态类型语言。本文探索在既有动态类型语言中改造出基于区域(region)的所有权模型,目标是在动态设置下提供安全的并发,即所有权冲突能以确定性动态失败形式出现并向程序员解释。作者给出可对对象组(区域)施加所有权的动态模型,实现动态强制区域纪律,并在一个类 Python 语法与语义的解释器中落地,同时报告将其初步集成到 Python 语言中的进展。
The ways in which the components of a program interact with each other in a concurrent setting can be considerably more complex than in a sequential setting. The core problem is unrestricted shared mutable state. An alternative to unrestricted shared mutable state is to restrict the sharing using Ownership. Ownership can turn what would have been a race into a deterministic failure that can be explained to the programmer. However, Ownership has predominantly taken place in statically typed languages. In this paper, we explore retrofitting an existing dynamically typed programming language with an ownership model based on regions. Our core aim is to provide safe concurrency, that is, the ownership model should provide deterministic dynamic failures of ownership that can be explained to the programmer. We present a dynamic model of ownership that provides ownership of groups objects called regions. We provide dynamic enforcement of our region discipline, which we have implemented in a simple interpreter that provides a Pythonlike syntax and semantics, and report on our first steps into integrating it into an existing language, Python.
@article{paperbot3128,
title = {Dynamic Region Ownership for Concurrency Safety},
author = {Fridtjof Peer Stoldt and Brandt Bucher and Sylvan Clebsch and Matthew A. Johnson and Matthew J. Parkinson and Guido van Rossum and Eric Snow and Tobias Wrigstad},
journal = {Proceedings of the ACM on Programming Languages},
volume = {9},
number = {PLDI},
year = {2025},
doi = {10.1145/3729313}
}