Free Objects in Constraint-logic Object-oriented Programming

被引:2
作者
Dagefoerde, Jan C. [1 ]
Winkelmann, Hendrik [1 ]
Kuchen, Herbert [1 ]
机构
[1] Univ Munster, ERCIS, Munster, Germany
来源
PROCEEDINGS OF THE 23RD INTERNATIONAL SYMPOSIUM ON PRINCIPLES AND PRACTICE OF DECLARATIVE PROGRAMMING, PPDP 2021 | 2021年
关键词
Constraint-logic object-oriented programming; reference-type logic variables; programming language implementation; runtime systems;
D O I
10.1145/3479394.3479409
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Constraint-logic object-oriented programming facilitates the integrated development of business software that occasionally solves constraint-logic problems or makes other use of structured search. So far, work in constraint-logic object-oriented programming has been 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 work at hand, we add support for free objects to a Java-based constraint-logic object-oriented language, Muli. Allowing free objects in statements and expressions results in novel interactions with objects at run time, for instance, non-deterministic execution of polymorphic method invocations (taking arbitrary class hierarchies into account) and non-deterministic type operations. At run time, this is supported by a dynamic type constraint that restricts the possible types of a free object at non-deterministic choices.
引用
收藏
页数:13
相关论文
共 29 条
[1]  
[Anonymous], 2015, The Java Language Specification-Java SE 8 Edition
[2]  
Bruneton Eric, 2002, Adaptable and extensible component systems, V30, P19
[3]   A compiler and virtual machine for constraint-logic object-oriented programming with Muli [J].
Dagefoerde, Jan C. ;
Kuchen, Herbert .
JOURNAL OF COMPUTER LANGUAGES, 2019, 53 :63-78
[4]   An Operational Semantics for Constraint-Logic Imperative Programming [J].
Dagefoerde, Jan C. ;
Kuchen, Herbert .
DECLARATIVE PROGRAMMING AND KNOWLEDGE MANAGEMENT, DECLARE 2017, 2018, 10997 :64-80
[5]  
Dageforde Jan C., 2019, Functional and Constraint Logic Programming. 26th International Workshop, WFLP 2018. Revised Selected Papers. Lecture Notes in Computer Science (LNCS 11285), P131, DOI 10.1007/978-3-030-16202-3_8
[6]   Z3: An efficient SMT solver [J].
de Moura, Leonardo ;
Bjorner, Nikolaj .
TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, 2008, 4963 :337-340
[7]   Using Abstract Models for the Generation of Test Data with a Complex Structure [J].
Demakov, A. V. ;
Zlelenov, S. V. ;
Zelenova, S. A. .
PROGRAMMING AND COMPUTER SOFTWARE, 2008, 34 (06) :341-350
[8]   Babelsberg: Specifying and Solving Constraints on Object Behavior [J].
Felgentreff, Tim ;
Borning, Alan ;
Hirschfeld, Robert .
JOURNAL OF OBJECT TECHNOLOGY, 2014, 13 (04) :1-38
[9]  
FREEMANBENSON BN, 1992, LECT NOTES COMPUT SC, V615, P268, DOI 10.1007/BFb0053042
[10]  
Geldenhuys Jaco, 2013, NASA Formal Methods. 5th International Symposium, NFM 2013. Proceedings, P229, DOI 10.1007/978-3-642-38088-4_16