Skip to content

ECOOP Papers

Papers indexed from ECOOP (European Conference on Object-Oriented Programming). ECOOP 2025 proceedings published in LIPIcs Volume 333.


2025

Compositional Static Value Analysis for Higher-Order Numerical Programs

Authors: Milla Valnet, Raphaël Monat, Antoine Miné
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Presents a compositional static value analysis for higher-order programs with numerical computations, enabling modular analysis of functions passed as arguments. The abstract interpretation framework scales to practical higher-order functional programs with numeric operations.

Keywords: abstract interpretation, static analysis, higher-order programs, numerical analysis


Lightweight Diagramming for Formal Methods: A Grounded Language Design

Authors: Siddhartha Prasad, Ben Greenman, Tim Nelson, Shriram Krishnamurthi
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Develops a lightweight diagram notation integrated with formal specification languages, making formal models easier to understand visually. The language design is grounded in user studies showing that diagram integration reduces comprehension errors for formal specifications.

Keywords: formal methods, diagramming, language design, visualization


Taming and Dissecting Recursions through Interprocedural Weak Topological Ordering

Authors: Jiawei Yang, Xiao Cheng, Bor-Yuh Evan Chang, Xiapu Luo, Yulei Sui
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Presents interprocedural weak topological ordering to improve analysis of recursive programs by structuring the iteration order of fixpoint computations. The approach speeds up convergence and improves precision of dataflow analyses over recursive call graphs.

Keywords: static analysis, dataflow, recursion, fixpoint computation


The Algebra of Patterns

Authors: David Binder, Lean Ermantraut
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Develops an algebraic theory of patterns in programming languages, characterizing pattern matching through algebraic laws and operations. The framework unifies various pattern forms across languages into a common algebraic structure.

Keywords: pattern matching, algebra, type theory, programming languages


A theory of (linear-time) timed monitors

Authors: Mouloud Amara, Giovanni Bernardi, Mohammed Aristide Foughali, Adrian Francalanza
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Develops a formal theory of timed runtime monitors operating over linear-time temporal properties, establishing correctness conditions for monitors with real-time constraints. The theory clarifies when timed monitors can correctly decide property violations on infinite executions.

Keywords: runtime verification, timed monitors, temporal logic, linear time


Contrasting Deadlock-Free Session Processes

Authors: Juan C. Jaramillo, Jorge A. Pérez
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025.17

Compares different approaches to ensuring deadlock freedom in session-typed process calculi, analyzing tradeoffs between expressiveness and compositional deadlock avoidance guarantees. The work clarifies the relationships between key session type disciplines for deadlock freedom.

Keywords: session types, deadlock freedom, process calculi, concurrency


Fair Termination of Asynchronous Binary Sessions

Authors: Luca Padovani, Gianluigi Zavattaro
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Studies fair termination of asynchronous binary session-typed processes, ensuring that protocols eventually complete under fair scheduling assumptions. The work provides type-based criteria guaranteeing liveness of session communications.

Keywords: session types, fair termination, asynchronous communication, liveness


Incremental Computing by Differential Execution

Authors: Prashant Kumar, André Pacak, Sebastian Erdweg
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Presents differential execution as a technique for incremental computation, where programs re-execute only the parts affected by input changes. The approach enables automatic incrementalization of programs without manual specification of dependencies.

Keywords: incremental computing, differential execution, program analysis, reactivity


Multiparty Asynchronous Session Types: A Mechanised Proof of Subject Reduction

Authors: Dawit Tirore, Jesper Bengtson, Marco Carbone
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Provides a mechanized proof of subject reduction for multiparty asynchronous session types in a proof assistant, validating the type safety of this important concurrency type discipline. The mechanization covers the full MPST calculus with asynchronous communication.

Keywords: multiparty session types, mechanized proofs, subject reduction, asynchronous communication


Declarative Dynamic Object Reclassification

Authors: Riccardo Sieve, Eduard Kamburjan, Ferruccio Damiani, Einar Broch Johnsen
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Introduces declarative dynamic object reclassification, allowing objects to change their class at runtime based on declarative rules. The approach combines active objects with reclassification to enable safe dynamic dispatch under changing object classifications.

Keywords: object reclassification, dynamic dispatch, active objects, object-oriented


Mono Types — First-Class Containers for Datalog

Authors: Runqing Xu, David Klopp, Sebastian Erdweg
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Introduces mono types as first-class container types for Datalog, enabling Datalog programs to manipulate typed collections of facts directly. This extension increases the expressiveness of Datalog for programming language analysis tasks.

Keywords: Datalog, type systems, program analysis, containers


Monadic type-and-effect soundness

Authors: Francesco Dagnino, Paola Giannini, Elena Zucca
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Establishes a general type-and-effect soundness theorem using monads to model computational effects, providing a unified framework for type safety across different effect systems. The monadic approach abstracts over specific effect implementations while preserving soundness.

Keywords: type and effect systems, monads, type soundness, computational effects


An Effectful Object Calculus

Authors: Francesco Dagnino, Paola Giannini, Elena Zucca
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Develops an object calculus with effects where method calls can produce computational effects tracked in the type system. The calculus provides a formal foundation for effect-aware object-oriented programming with a sound type-and-effect system.

Keywords: object calculus, effects, type systems, object-oriented


Compositional Bug Detection for Internally Unsafe Libraries: A Logical Approach to Type Unsoundness

Authors: Pedro Carrott, Sacha-Élie Ayoun, Azalea Raad
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025.5

Presents a logical framework for compositional bug detection in libraries that use unsafe operations internally while exposing a safe interface. The approach uses incorrectness logic to find real bugs arising from unsoundness of FFI or unsafe code within otherwise typed programs.

Keywords: bug detection, compositional verification, incorrectness logic, unsafe code


Practical Type-Based Taint Checking and Inference

Authors: Nima Karimipour, Kanak Das, Manu Sridharan, Behnaz Hassanshahi
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Develops a practical type-based taint analysis with type inference, reducing annotation burden while providing sound taint tracking. The system scales to real-world Java programs and identifies security vulnerabilities through automatic propagation of taint annotations.

Keywords: taint analysis, type inference, security, static analysis


Bottom-up Synthesis of Memory Mutations with Separation Logic

Authors: Kasra Ferdowsi, Hila Peleg
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Presents a program synthesis algorithm for memory-manipulating programs using separation logic specifications, using a bottom-up enumeration strategy guided by heap constraints. The tool synthesizes pointer-manipulating code from pre/postconditions in separation logic.

Keywords: program synthesis, separation logic, memory safety, heap reasoning


IsaBIL: A Framework for Verifying (In)correctness of Binaries in Isabelle/HOL

Authors: Matt Griffin, Brijesh Dongol, Azalea Raad
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Develops IsaBIL, an Isabelle/HOL framework for verifying both correctness and incorrectness properties of binary programs. The framework supports binary-level reasoning using both forward (correctness) and backward (bug-finding) program logics.

Keywords: binary verification, Isabelle/HOL, correctness, incorrectness logic


Reusing Caches and Invariants for Efficient and Sound Incremental Static Analysis

Authors: Mamy Razafintsialonina, David Bühler, Antoine Miné, Valentin Perrelle, Julien Signoles
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Presents an incremental static analysis framework that reuses previously computed invariants and analysis caches to avoid redundant work when programs are updated. The approach provides soundness guarantees for incremental re-analysis of modified programs.

Keywords: incremental analysis, static analysis, abstract interpretation, soundness


RacerF: Lightweight Static Data Race Detection for C Code

Authors: Tomáš Dacík, Tomas Vojnar
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Introduces RacerF, a lightweight static data race detector for C programs based on shape analysis with fractional permissions. The tool detects races without requiring programmer annotations by inferring ownership through compositional heap analysis.

Keywords: data race detection, static analysis, C, concurrency


PoTo: A Hybrid Andersen's Points-to Analysis for Python

Authors: Ingkarat Rak-amnouykit, Ana Milanova, Guillaume Baudart, Martin Hirzel, Julian Dolby
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Presents PoTo, a hybrid points-to analysis for Python combining Andersen's static analysis with dynamic profiling for improved precision on dynamic language features. The hybrid approach achieves better recall on Python's dynamic dispatch while maintaining reasonable performance.

Keywords: points-to analysis, Python, dynamic analysis, program analysis


Pydrofoil: accelerating Sail-based instruction set simulators

Authors: Martin Berger, CF Bolz-Tereick, Luke Panayi, Ferdia McKeogh, Tom Spink
Venue: ECOOP 2025
Year: 2025
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2025

Pydrofoil accelerates ISA simulators derived from Sail specifications by compiling them to efficient Python using meta-tracing JIT compilation. The tool enables high-performance simulation from formal ISA specifications without sacrificing their correctness guarantees.

Keywords: instruction set simulators, Sail, JIT compilation, ISA specification



2024

Static Basic Block Versioning

Authors: Manuel Serrano, Olivier Melançon, Marc Feeley
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Introduces static basic block versioning, a compilation technique that specializes code blocks based on type information available at compile time. This achieves JIT-like performance benefits through ahead-of-time specialization without runtime profiling.

Keywords: compilation, basic block versioning, type specialization, JIT


Compiling with Arrays

Authors: David Richter, Timon Böhler, Pascal Weisenburger, Mira Mezini
Venue: ECOOP 2024
Year: 2024
DOI: https://arxiv.org/pdf/2405.18242

Develops a compilation strategy targeting arrays as a first-class primitive, enabling efficient code generation for array-intensive programs. The approach bridges high-level functional array operations and low-level array implementations.

Keywords: compilation, arrays, code generation, functional programming


Optimizing Layout of Recursive Datatypes with Marmoset

Authors: Vidush Singhal, Chaitanya S. Koparkar, Joseph Zullo, Artem Pelenitsyn, Michael Vollmer, Mike Rainey, Ryan R. Newton, Milind Kulkarni
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024.38

Marmoset is a compiler optimization system that automatically chooses memory layouts for recursive algebraic datatypes to improve cache performance. It analyses access patterns and selects among several layout strategies to minimize cache misses.

Keywords: data layout, recursive datatypes, compilation, performance


Behavioral up/down casting for statically typed languages

Authors: Lorenzo Bacchiani, Mario Bravetti, Marco Giunti, João Mota, António Ravara
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Proposes a type-theoretic treatment of behavioral upcasting and downcasting for session-typed and class-typed languages, providing safe dynamic type conversions that preserve protocol compliance. The work extends subtyping with covariant and contravariant behavioral refinements.

Keywords: session types, subtyping, casting, behavioral types


Regrading Policies for Flexible Information Flow Control in Session-Typed Concurrency

Authors: Farzaneh Derakhshan, Stephanie Balzer, Yue Yao
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Introduces regrading policies in session-typed languages to allow principled declassification and endorsement of information in concurrent programs. The framework integrates information flow control with linear session types.

Keywords: information flow, session types, concurrency, security types


Ozone: Fully Out-of-Order Choreographies

Authors: Dan Plyukhin, Marco Peressotti, Fabrizio Montesi
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Ozone extends choreographic programming with out-of-order execution, allowing choreographies to specify concurrent communication patterns beyond strict sequential order. The work provides a formal model and endpoint projection for out-of-order choreographies.

Keywords: choreographic programming, concurrency, out-of-order execution, process calculi


Information Flow Control in Cyclic Process Networks

Authors: Bas van den Heuvel, Farzaneh Derakhshan, Stephanie Balzer
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Develops information flow control for process networks with cycles, extending prior session type approaches to handle cyclic communication topologies safely. The type system prevents leakage of confidential information through cycle-forming communication paths.

Keywords: information flow, session types, cyclic processes, security


Formalizing, Mechanizing, and Verifying Class-based Refinement Types

Authors: Ke Sun, Di Wang, Sheng Chen, Meng Wang, Dan Hao
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Presents a formalization and mechanized proof of soundness for class-based refinement types in an object-oriented language. The approach allows class hierarchies to carry logical predicates that are checked statically, with a Coq mechanization validating the metatheory.

Keywords: refinement types, object-oriented, Coq, mechanization, verification


Pure methods for roDOT

Authors: Vlastimil Dort, Yufeng Li, Ondřej Lhoták, Pavel Parizek
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Extends the roDOT (read-only Dependent Object Types) calculus with pure methods that have no side effects, enabling richer specifications in a DOT-based type system. The extension preserves key metatheoretic properties while allowing more expressive method contracts.

Keywords: DOT calculus, dependent object types, purity, type theory


Failure Transparency in Stateful Dataflow Systems

Authors: Aleksey Veresov, Jonas Spenger, Paris Carbone, Philipp Haller
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024.42

Formalizes failure transparency for stateful dataflow systems, providing guarantees that failures are hidden from application logic through automatic recovery. The formal model captures exactly-once semantics for stateful streaming computations.

Keywords: dataflow, fault tolerance, formal semantics, distributed systems


Fair join pattern matching for actors

Authors: Philipp Haller, Ayman Hussein, Hernan Melgratti, Alceste Scalas, Emilio Tuosto
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024.17

Introduces fair join pattern matching for actors, ensuring that join patterns are matched fairly among waiting actors. The approach combines join calculus with fairness properties, providing formal guarantees about liveness in actor-based concurrent programs.

Keywords: actors, join patterns, fairness, concurrency


Fearless Asynchronous Communications with Timed Multiparty Session Protocols

Authors: Ping Hou, Nicolas Lagaillardie, Nobuko Yoshida
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Presents a Rust framework for safe asynchronous communication using timed multiparty session types. The approach enforces communication protocols and timing constraints at compile time, preventing deadlocks and timeouts in distributed systems.

Keywords: session types, multiparty protocols, Rust, timed protocols, asynchronous communication


Defining Name Accessibility using Scope Graphs

Authors: Aron Zwaan, Casper Bach
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.48550/arXiv.2407.09320

Uses scope graphs as a formal framework to define name accessibility in programming languages, capturing shadowing, visibility rules, and module systems in a uniform graph-based model. The approach is language-agnostic and can be instantiated for different scoping disciplines.

Keywords: scope graphs, name binding, scoping, language design


Constrictor: Immutability as a Design Concept

Authors: Elad Kinsbruner, Shachar Itzhaky, Hila Peleg
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024.22

Proposes Constrictor, a design framework that treats immutability as a first-class design concept rather than a type-system annotation. The approach helps programmers reason about and enforce immutability constraints at a higher level of abstraction.

Keywords: immutability, program design, object-oriented, verification


Mover Logic: A Concurrent Program Logic for Reduction and Rely-Guarantee Reasoning

Authors: Stephen N. Freund, Cormac Flanagan
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Develops Mover Logic, a program logic for concurrent programs that combines reduction (commutativity of atomic actions) with rely-guarantee reasoning. The logic enables sound compositional verification of concurrent programs with fine-grained synchronization.

Keywords: concurrency, program logic, reduction, rely-guarantee, verification


Refinements for Multiparty Message-Passing Protocols

Authors: Martin Vassor, Nobuko Yoshida
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Introduces refinement types for multiparty session protocols, allowing protocols to carry data-dependent constraints. The theory is specification-agnostic, working with multiple protocol specification languages, and supports decidable protocol compliance checking.

Keywords: multiparty session types, refinement types, protocol verification, concurrency


Type Tailoring

Authors: Ashton Wiersdorf, Stephen Chang, Matthias Felleisen, Ben Greenman
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Presents type tailoring, a meta-programming approach that allows programmers to specialize type checking for library functions. Type tailors can check domain-specific invariants beyond what the host type system provides, improving error messages and enabling deeper static checking.

Keywords: type systems, meta-programming, type tailoring, macros, Racket


Learning Gradual Typing Performance

Authors: Mohammad Wahiduzzaman Khan, Sheng Chen, Yi He
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Develops a machine learning approach to predict performance characteristics of gradually typed programs, helping programmers choose type annotation strategies that avoid performance pitfalls. The model predicts slowdowns due to dynamic checks inserted by gradual typing.

Keywords: gradual typing, performance, machine learning, type annotations


Generalizing Shape Analysis with Gradual Types

Authors: Zeina Migeed, James Reed, Jason Ansel, Jens Palsberg
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Extends shape analysis for tensor programs using gradual types, allowing partial shape information to be tracked statically with dynamic checks for unknown shapes. The approach improves bug detection in deep learning frameworks while supporting dynamic shape computation.

Keywords: shape analysis, gradual typing, tensors, deep learning, type systems


Inductive Predicate Synthesis Modulo Programs

Authors: Scott Wesley, Maria Christakis, Jorge A. Navas, Richard Trefler, Valentin Wüstholz, Arie Gurfinkel
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Presents an algorithm for synthesizing inductive predicates for program verification that leverages existing program analyses. The approach modularly combines predicate synthesis with external tools, producing loop invariants and data structure specifications.

Keywords: program synthesis, inductive predicates, verification, invariant synthesis


Qafny: A Quantum-Program Verifier

Authors: Liyi Li, Mingwei Zhu, Rance Cleaveland, Alexander Nicolellis, Yi Lee, Le Chang, Xiaodi Wu
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Qafny is a verification framework for quantum programs based on quantum Hoare logic and a Dafny-like assertion language. It supports automated verification of quantum circuit properties by translating quantum specifications into classical verification conditions.

Keywords: quantum computing, program verification, Hoare logic, quantum types


Tenspiler: A Verified Lifting-Based Compiler for Tensor Operations

Authors: Jie Qiu, Colin Cai, Sahil Bhatia, Niranjan Hasabnis, Sanjit Seshia, Alvin Cheung
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Tenspiler lifts scalar programs operating on tensors into high-level tensor operation specifications, enabling verified compilation across different hardware backends. The lifting process is guided by a library of tensor algebra specifications and validated by Rosette.

Keywords: tensor operations, verified compilation, program lifting, synthesis


Compositional Symbolic Execution for Correctness and Incorrectness Reasoning

Authors: Andreas Lööw, Daniele Nantes-Sobrinho, Sacha-Élie Ayoun, Caroline Cronjäger, Petar Maksimović, Philippa Gardner
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Presents a compositional symbolic execution framework that supports both correctness (over-approximate) and incorrectness (under-approximate) reasoning in a unified setting. The approach enables finding real bugs and proving program properties using the same symbolic execution infrastructure.

Keywords: symbolic execution, incorrectness logic, compositional verification, separation logic


Verifying Lock-free Search Structure Templates

Authors: Nisarg Patel, Dennis Shasha, Thomas Wies
Venue: ECOOP 2024
Year: 2024
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024

Develops a verification methodology for parameterized lock-free data structure templates, allowing a single proof to cover many instantiations. The work uses a modular reasoning approach to verify linearizability of concurrent search structures like skiplists and BSTs.

Keywords: concurrency, lock-free, verification, linearizability, separation logic