Principles of Programming (PoP) Seminar - Matthew Parkinson May 13, 2025 2:00pm — 3:00pm Location: In Person - ASA Conference Room, Gates Hillman 6115 and Zoom Speaker: MATTHEW PARKINSON , Principal Researcher, Confidential Computing Group, Microsoft Research https://www.microsoft.com/en-us/research/people/mattpark/ Dynamic Region Ownership for Concurrency Safety 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 talk, 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 Python-like syntax and semantics, and report on our first steps into integrating it into an existing language, Python. This talk is based on a paper that will appear at PLDI'25. — Matthew Parkinson works in the Security and Privacy group in Azure Research. His research focuses on memory safety and concurrency, in particular, how to make better programming languages for Cloud Infrastructure programming. He is the lead maintainer of snmalloc, a high-performance allocator. Previously, he worked on extending separation logic to reason about both object-oriented and concurrent programming languages. Event Website: https://www.cs.cmu.edu/~pop/seminar/ Add event to Google Add event to iCal