Research Meeting 20489
Forschungsaufenthalt
( Nov 23 – Nov 27, 2020 )
Permalink
Organizer
- Friedrich Steimann (Fernuniversität in Hagen, DE)
Contact
- Heike Clemens (for administrative matters)
While n-ary relations are a universal modelling construct (as evidenced, for instance, by predicate logic and the relational data model), object-oriented programming is tied to classes and pointers, that is, to unary and directed binary to-one relations, essentially modelling the world using (total) functions on objects. This linguistic restriction leads to awkward and fragile programs, as evidenced, for instance, by the countless attempts of fixing Hoare’s “billion dollar mistake”, the introduction of the null pointer.
Inspired by Daniel Jackson’s relational logic based modelling language Alloy, I used my five-day forschungsaufenthalt at Dagstuhl to develop a core calculus of object-relational programming, that is, to devise a minimal programming language that links objects through n-ary relations rather than fields (binary functions). Deviating from many earlier proposals of making object-oriented programming more relational, relations are not first class, and are accessed (navigated and updated) using roles as generalizations of fields. The core calculus is untyped; instead, it statically enforces mapping constraints on relations, that is, cardinality ratios such as 1:N or N:1:M, which are widely used in data modelling and which are notoriously hard to preserve under update.
During my forschungsaufenthalt, the Dagstuhl staff provided me once more with a perfect research environment, allowing me to reach my personal limits, with no interruptions or other everyday bothers to ascribe them to.