TY - GEN
T1 - An Effectful Object Calculus
AU - Dagnino, Francesco
AU - Giannini, Paola
AU - Zucca, Elena
N1 - Publisher Copyright:
© Francesco Dagnino, Paola Giannini, and Elena Zucca.
PY - 2025/6/25
Y1 - 2025/6/25
N2 - We show how to smoothly incorporate in the object-oriented paradigm constructs to raise, compose, and handle effects in an arbitrary monad. The underlying pure calculus is meant to be a representative of the last generation of OO languages, and the effectful extension is manageable enough for ordinary programmers; notably, constructs to raise effects are just special methods. We equip the calculus with an expressive type-and-effect system, which, again by relying on standard features such as inheritance and generic types, allows a simple form of effect polymorphism. The soundness of the type-and-effect system is expressed and proved by a recently introduced technique, where the semantics is formalized by a one-step reduction relation from language expressions into monadic ones, so that it is enough to prove progress and subject reduction properties on this relation.
AB - We show how to smoothly incorporate in the object-oriented paradigm constructs to raise, compose, and handle effects in an arbitrary monad. The underlying pure calculus is meant to be a representative of the last generation of OO languages, and the effectful extension is manageable enough for ordinary programmers; notably, constructs to raise effects are just special methods. We equip the calculus with an expressive type-and-effect system, which, again by relying on standard features such as inheritance and generic types, allows a simple form of effect polymorphism. The soundness of the type-and-effect system is expressed and proved by a recently introduced technique, where the semantics is formalized by a one-step reduction relation from language expressions into monadic ones, so that it is enough to prove progress and subject reduction properties on this relation.
KW - Object calculi
KW - handlers
KW - type-and-effect systems
UR - https://www.scopus.com/pages/publications/105009733516
U2 - 10.4230/LIPIcs.ECOOP.2025.8
DO - 10.4230/LIPIcs.ECOOP.2025.8
M3 - Conference contribution
AN - SCOPUS:105009733516
T3 - Leibniz International Proceedings in Informatics, LIPIcs
BT - 39th European Conference on Object-Oriented Programming, ECOOP 2025
A2 - Aldrich, Jonathan
A2 - Silva, Alexandra
PB - Schloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing
T2 - 39th European Conference on Object-Oriented Programming, ECOOP 2025
Y2 - 30 June 2025 through 2 July 2025
ER -