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 条
[11]  
Hanus Michael., 1995, P ILP WORKSHOP VISIO, P95
[12]  
Hunt John, 2018, A Beginner's Guide to Scala, Object Orientation and Functional Programming, V2
[13]  
Khurshid S, 2003, LECT NOTES COMPUT SC, V2619, P553
[14]   AUTOMATED SOFTWARE TEST DATA GENERATION [J].
KOREL, B .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1990, 16 (08) :870-879
[15]  
Krings Sebastian, 2020, Declarative Programming and Knowledge Management. Conference on Declarative Programming, DECLARE 2019 Unifying INAP, WLP, and WFLP. Revised Selected Papers. Lecture Notes in Artificial Intelligence Subseries of Lecture Notes in Computer Science (LNAI 12057), P139, DOI 10.1007/978-3-030-46714-2_10
[16]   Constraints-driven scheduling and resource assignment [J].
Kuchcinski, K .
ACM TRANSACTIONS ON DESIGN AUTOMATION OF ELECTRONIC SYSTEMS, 2003, 8 (03) :355-383
[17]   Dynamic Symbolic Execution for Polymorphism [J].
Li, Lian ;
Lu, Yi ;
Xue, Jingling .
CC'17: PROCEEDINGS OF THE 26TH INTERNATIONAL CONFERENCE ON COMPILER CONSTRUCTION, 2017, :120-130
[18]  
Lindholm T., 2013, The Java Virtual Machine Specification
[19]  
Microsoft, 2020, Reference types (C# Reference)
[20]  
Milicevic A, 2011, 2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), P511, DOI 10.1145/1985793.1985863