Interface-Scoped Dispatch: Independent Components with O(1) Self-Calls

Object composition under static typing forces a trade: independent components, or open recursion. Forwardingbased constructs compose independent components, but a component’s self-calls do not dispatch through the composite. Trait/mixin composition preserves self-call dispatch at the expense of independent components. Approaches that combine the two surrender the components’ independence, fusing them into the class or binding them to an enclosing family. Composing independent components with open recursion has remained open. We present Parts, a compositional model that unifies independent components and open recursion, realized as a compiler plugin for Java 8–26. A part is an independent component, supplied as a runtime object at construction, whose self-calls route through the composite; the enabling mechanism, interface-scoped dispatch (ISD), assigns composite identity per interface rather than per object. Self-calls route through the correct composite in arbitrary compositions. The dispatch cost is O(1), empirically equivalent to a vtable call.

Authors

Publication Details

Journal
Zenodo (CERN European Organization for Nuclear Research)
Published
2026-07-23
DOI
https://doi.org/10.5281/zenodo.21514974
Primary Topic
Advanced Software Engineering Methodologies
Type
preprint
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
preprint

Interface-Scoped Dispatch: Independent Components with O(1) Self-Calls

Robert Scott McKinney
Zenodo (CERN European Organization for Nuclear Research)
Advanced Software Engineering Methodologies
preprint

Interface-Scoped Dispatch: Independent Components with O(1) Self-Calls

Robert Scott McKinney
preprint en

Abstract

Object composition under static typing forces a trade: independent components, or open recursion. Forwardingbased constructs compose independent components, but a component’s self-calls do not dispatch through the composite. Trait/mixin composition preserves self-call dispatch at the expense of independent components. Approaches that combine the two surrender the components’ independence, fusing them into the class or binding them to an enclosing family. Composing independent components with open recursion has remained open. We present Parts, a compositional model that unifies independent components and open recursion, realized as a compiler plugin for Java 8–26. A part is an independent component, supplied as a runtime object at construction, whose self-calls route through the composite; the enabling mechanism, interface-scoped dispatch (ISD), assigns composite identity per interface rather than per object. Self-calls route through the correct composite in arbitrary compositions. The dispatch cost is O(1), empirically equivalent to a vtable call.

Zenodo (CERN European Organization for Nuclear Research)
Advanced Software Engineering Methodologies
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.