Free Objects in Constraint-logic Object-oriented Programming

Constraint-logic object-oriented programming is useful in the integrated development of business software that occasionally solves constraint-logic problems. So far, work in constraint-logic objectoriented programming was limited to considering constraints that only involve logic variables of primitive types; in particular, boolean, integer, and floating-point numbers. However, the availability of object-oriented features calls for the option to use logic variables in lieu of objects as well. Therefore, support for reference-type logic variables (or free objects) is required. With the present work, we add support for reference-type logic variables to a Java-based constraint-logic objectoriented language. Allowing free objects in statements and expressions results in novel interactions with objects at runtime, for instance, non-deterministic execution of invocations on free objects (taking arbitrary class hierarchies and overriding into account). In order to achieve this, we also propose a dynamic type constraint that restricts the types of free objects at runtime.

Author(s): 
Dageförde, Jan C.
Kuchen, Herbert
Year of Publication: 
2020
Type of Outlet: 
Name of Outlet: 
ERCIS Working Papers
Place of Outlet: 
Münster, Germany
Editor(s): 
Becker, Jörg
Dugas, Martin
Helligrath, Bernd
Hoeren, Thomas
Klein, Stefan
Kuchen, Herbert
Trautmann, Heike
Vossen, Gottfried
Working Report Number: 
32