quence, more complex constraints are pushed to the
constraint stack, yet, fewer paths have to be evaluated
by the tool. While promising, Java Ranger does not
treat purely symbolic arrays (Sharma et al., 2020).
Our approach draws from past research on speed-
ing up array constraints (Perry et al., 2017). This
research is comparable to Algorithm 1. Our imple-
mentation differs in that we use implication opposed
to nested if-then-else statements with summarized
index ranges as the latter has reduced the performance
for our benchmark examples. Furthermore, we pro-
vide a mechanism to express symbolic aliasing, thus
enabling a purely symbolic treatment of arrays of ob-
jects for all solvers supporting negation, disjunction,
and conjunction of constraints as well as value equal-
ity.
6 CONCLUSION AND FUTURE
WORK
We have described an approach for symbolically rep-
resenting arrays of arrays and, more generally, arrays
of objects. We have shown that the approach outper-
forms related work for retrieving path solutions. In
the future, it might be interesting to compare the per-
formance of other types of constraint solvers, such
as FD solvers, with SMT solvers in the context of
CLOOP. This is possible since the presented mecha-
nisms pose very few requirements towards employed
solvers.
REFERENCES
Barrett, C., Fontaine, P., and Tinelli, C. (2017). The SMT-
LIB Standard: Version 2.6. Technical report, Depart-
ment of Computer Science, The University of Iowa.
Available at www.SMT-LIB.org.
Cadar, C. and Sen, K. (2013). Symbolic execution for soft-
ware testing: Three decades later. Commun. ACM,
56(2):82–90.
Dagef
¨
orde, J. C. and Kuchen, H. (2018). A constraint-logic
object-oriented language. In Proceedings of the 33rd
Annual ACM Symposium on Applied Computing, SAC
’18, page 1185–1194, New York, NY, USA. Associa-
tion for Computing Machinery.
Dagef
¨
orde, J. C., Winkelmann, H., and Kuchen, H. (2021).
Free objects in constraint-logic object-oriented pro-
gramming. In 23rd International Symposium on
Principles and Practice of Declarative Programming,
PPDP 2021, New York, NY, USA. Association for
Computing Machinery.
De Moura, L. and Bjørner, N. (2008). Z3: An efficient smt
solver. In Proceedings of the Theory and Practice of
Software, 14th International Conference on Tools and
Algorithms for the Construction and Analysis of Sys-
tems, TACAS’08/ETAPS’08, page 337–340, Berlin,
Heidelberg. Springer-Verlag.
Drexl, A. and Kimms, A. (1997). Lot sizing and schedul-
ing — survey and extensions. European Journal of
Operational Research, 99(2):221–235.
Kuchcinski, K. (2003). Constraints-driven scheduling and
resource assignment. ACM Transactions on Design
Automation of Electronic Systems, 8(3):355–383.
P
˘
as
˘
areanu, C. S. and Rungta, N. (2010). Symbolic
pathfinder: Symbolic execution of java bytecode. In
Proceedings of the IEEE/ACM International Confer-
ence on Automated Software Engineering, ASE ’10,
page 179–180, New York, NY, USA. Association for
Computing Machinery.
Perry, D. M., Mattavelli, A., Zhang, X., and Cadar, C.
(2017). Accelerating array constraints in symbolic
execution. In Proceedings of the 26th ACM SIG-
SOFT International Symposium on Software Testing
and Analysis, ISSTA 2017, page 68–78, New York,
NY, USA. Association for Computing Machinery.
Rossi, G. and Bergenti, F. (2015). Nondeterministic pro-
gramming in java with jsetl. Fundamenta Informati-
cae, 140(3-4):393–412.
Sharma, V., Hussein, S., Whalen, M. W., McCamant, S.,
and Visser, W. (2020). Java ranger: Statically sum-
marizing regions for efficient symbolic execution of
java. In Proceedings of the 28th ACM Joint Meeting
on European Software Engineering Conference and
Symposium on the Foundations of Software Engineer-
ing, ESEC/FSE 2020, page 123–134, New York, NY,
USA. Association for Computing Machinery.
Wielemaker, J., Schrijvers, T., Triska, M., and Lager, T.
(2012). Swi-prolog. Theory and Practice of Logic
Programming, 12(1-2):67–96.
Winkelmann, H., Dagef
¨
orde, J. C., and Kuchen, H. (2021).
Constraint-logic object-oriented programming with
free arrays. In Hanus, M. and Sacerdoti Coen, C.,
editors, Functional and Constraint Logic Program-
ming, pages 129–144, Cham. Springer International
Publishing.
Winkelmann, H. and Kuchen, H. (2022). Constraint-logic
object-oriented programming on the java virtual ma-
chine. In Proceedings of the 37th ACM/SIGAPP
Symposium on Applied Computing, SAC ’22, page
1258–1267, New York, NY, USA. Association for
Computing Machinery.
Winkelmann, H., Troost, L., and Kuchen, H. (2022).
Constraint-logic object-oriented programming for test
case generation. In Proceedings of the 37th
ACM/SIGAPP Symposium on Applied Computing,
SAC ’22, page 1499–1508, New York, NY, USA. As-
sociation for Computing Machinery.
Constraint-Logic Object-Oriented Programming with Free Arrays of Reference-Typed Elements via Symbolic Aliasing
419