Published 2012
| Version v1
Publication
Corecursive Featherweight Java
Creators
Contributors
Others:
Description
Despite cyclic data structures occur often in many application domains,
object-oriented programming languages provide poor abstraction mechanisms
for dealing with cyclic objects.
Such a deficiency is reflected also in the research on theoretical foundation
of object-oriented languages; for instance, Featherweigh Java (FJ), which is one of the
most widespread object-oriented calculi, does not allow creation and manipulation of cyclic objects.
We propose an extension to Featherweight Java, called coFJ, where it is possible to define
cyclic objects, abstractly corresponding to regular terms, and where an abstraction mechanism,
called regular corecursion, is provided for supporting implementation of coinductive
operations on cyclic objects.
We formally define the operational semantics of coFJ, and provide a handful of
examples showing the expressive power of regular corecursion; such a mechanism
promotes a novel programming style particularly well-suited for implementing
cyclic data structures, and for supporting coinductive reasoning.
Additional details
Identifiers
- URL
- http://hdl.handle.net/11567/488725
- URN
- urn:oai:iris.unige.it:11567/488725
Origin repository
- Origin repository
- UNIGE