Reference Type Logic Variables in Constraint-Logic Object-Oriented Programming

  • Jan C. DagefördeEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11285)


Constraint-logic object-oriented programming, for example using Muli, facilitates the integrated development of business software that occasionally involves finding solutions to constraint-logic problems. The availability of object-oriented features calls for the option to use objects as logic variables as well, as opposed to being limited to primitive type logic variables. The present work contributes a concept for reference type logic variables in constraint-logic object-oriented programming that takes arbitrary class hierarchies of programs written in object-oriented languages into account. The concept discusses interactions between constraint-logic object-oriented programs and reference type logic variables, particularly invocations on and access to logic variables, type operations, and equality. Furthermore, it proposes approaches as to how these interactions can be handled by a corresponding execution environment.


Constraint-logic object-oriented programming Multi-paradigm languages Free objects Object type constraints 


  1. 1.
    Antoy, S., Hanus, M.: From boolean equalities to constraints. In: Falaschi, M. (ed.) LOPSTR 2015. LNCS, vol. 9527, pp. 73–88. Springer, Cham (2015). Scholar
  2. 2.
    Dageförde, J.C., Kuchen, H.: A constraint-logic object-oriented language. In: SAC 2018, pp. 1185–1194. ACM (2018).
  3. 3.
    Dageförde, J.C., Kuchen, H.: An operational semantics for constraint-logic imperative programming. In: Seipel, D., Hanus, M., Abreu, S. (eds.) WFLP/WLP/INAP 2017. LNCS, vol. 10997, pp. 64–80. Springer, Cham (2018). Scholar
  4. 4.
    Denti, E., Omicini, A., Ricci, A.: Multi-paradigm Java-Prolog integration in tuProlog. Sci. Comput. Program. 57(2), 217–250 (2005). Scholar
  5. 5.
    Gosling, J., Joy, B., Steele, G., Bracha, G., Buckley, A.: The Java® Language Specification - Java SE 8 Edition (2015).
  6. 6.
    Hanus, M., Kuchen, H., Moreno-Navarro, J.J., Votano, J., Parham, M., Hall, L.: Curry: a truly functional logic language. In: Workshop on Visions for the Future of Logic Programming, ILPS 1995, pp. 95–107 (1995)Google Scholar
  7. 7.
    King, J.C.: Symbolic execution and program testing. Commun. ACM 19(7), 385–394 (1976). Scholar
  8. 8.
    Lazutkin, E.: Unification for JS (2014).
  9. 9.
    Meijer, E., Beckman, B., Bierman, G.: LINQ: reconciling objects, relations and XML in the .NET framework. In: ACM SIGMOD International Conference on Management of Data, p. 706 (2006).
  10. 10.
  11. 11.
    Odersky, M., et al.: Scala Language Specification (2017).
  12. 12.
    Ostermayer, L.: Seamless cooperation of Java and Prolog for rule-based software development. In: Proceedings of RuleML 2015 (2015).
  13. 13.
    Plümicke, M.: Java type unification with wildcards. In: Seipel, D., Hanus, M., Wolf, A. (eds.) INAP/WLP 2007. LNCS, vol. 5437, pp. 223–240. Springer, Heidelberg (2009). Scholar
  14. 14.
    Urma, R.G., Fusco, M., Mycroft, A.: Java 8 in Action: Lambdas, Streams, and Functional-Style Programming. Manning Publications Co., Greenwich (2014)Google Scholar
  15. 15.
    Van Roy, P., Brand, P., Duchier, D., Haridi, S., Schulte, C., Henz, M.: Logic programming in the context of multiparadigm programming: the Oz experience. Theory Pract. Logic Program. 3(6), 717–763 (2003). Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.ERCISMünsterGermany

Personalised recommendations