Blame-Correct Support for Receiver Properties in Recursively-Structured Actor Contracts

Actor languages model concurrency as processes that communicate through asynchronous message sends. Unfortunately, as the complexity of these systems increases, it becomes more difficult to compose and integrate their components. This is because of assumptions made by components about their communication partners which may not be upheld when they remain implicit. In this paper, we bring design-by-contract programming to actor programs through a contract system that enables expressing constraints on receiver-related properties. Expressing properties about the expected receiver of a message, and about this receiver’s communication behavior, requires two novel types of contracts. Through their recursive structure, these contracts can govern entire communication chains. We implement the contract system for an actor extension of Scheme, describe it formally, and show how to assign blame in case of a contract violation. Finally, we prove our contract system and its blame assignment correct by formulating and proving a blame correctness theorem.

Authors

Institutions

Publication Details

Journal
Proceedings of the ACM on Programming Languages
Published
2024-08-15
DOI
https://doi.org/10.1145/3674643
Citations
1
Primary Topic
Blockchain Technology Applications and Security
Type
article
Field-Weighted Citation Impact
0.78
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Blame-Correct Support for Receiver Properties in Recursively-Structured Actor Contracts

Bram Vandenbogaerde, Coen De Roover, Quentin Stiévenart
1 citations
Proceedings of the ACM on Programming Languages
Blockchain Technology Applications and Security
0.78
article

Blame-Correct Support for Receiver Properties in Recursively-Structured Actor Contracts

Bram Vandenbogaerde, Coen De Roover, Quentin Stiévenart
article en
1 citations

Abstract

Actor languages model concurrency as processes that communicate through asynchronous message sends. Unfortunately, as the complexity of these systems increases, it becomes more difficult to compose and integrate their components. This is because of assumptions made by components about their communication partners which may not be upheld when they remain implicit. In this paper, we bring design-by-contract programming to actor programs through a contract system that enables expressing constraints on receiver-related properties. Expressing properties about the expected receiver of a message, and about this receiver’s communication behavior, requires two novel types of contracts. Through their recursive structure, these contracts can govern entire communication chains. We implement the contract system for an actor extension of Scheme, describe it formally, and show how to assign blame in case of a contract violation. Finally, we prove our contract system and its blame assignment correct by formulating and proving a blame correctness theorem.

Proceedings of the ACM on Programming LanguagesVol. 8(ICFP)
Vrije Universiteit Brussel (BE), Université du Québec à Montréal (CA)
Peace, Justice and strong institutions
Openalex Percentile: Top 22%
Blockchain Technology Applications and Security
0.78
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Blame-Correct Support for Receiver Properties in Recursively-Structured Actor Contracts — Bram Vandenbogaerde, Coen De Roover, et al. · Proceedings of the ACM on Programming Languages (2024) | TGRS Research Map | TGRS