The development of design patterns in object-oriented programming aims at capturing good software design in a re-usable generic form. However, design patterns are not expressible ...
Ondrej Rypacek, Roland Carl Backhouse, Henrik Nils...
In this paper we define nQML, a functional quantum programming language that follows the "quantum data and control" paradigm. In comparison to Altenkirch and Grattage...
Michael Lampis, Kyriakos G. Ginis, Michalis A. Pap...
In the GADT (Generalized Algebraic Data Types) type system, a pattern-matching branch can draw type information from both the scrutinee type and the data constructor type. Even th...
The method of logical relations is a classic technique for proving the equivalence of higher-order programs that implement the same observable behavior but employ different intern...
Derek Dreyer, Georg Neis, Andreas Rossberg, Lars B...
Ownership types provide a statically enforceable way of specifying object encapsulation and enable local reasoning about program correctness in object-oriented languages. However,...
Chandrasekhar Boyapati, Barbara Liskov, Liuba Shri...