Free objects in constraint-logic object-oriented programming - Jan C. Dageförde; Herbert Kuchen (Westfälische Wilhelms-Universität Münster, European Research Center for Information Systems (ERCIS), 2020)
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 object-oriented 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 object-oriented 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.
Keywords: 650; constraint-logic object-oriented programming; reference-type logic variables; programming language implementation; runtime systems