Applied Type System (ATS) is recently proposed as a framework for designing and formalizing (advanced) type systems in support of practical programming. In ATS, the definition of ...
ML modules and Haskell type classes have proven to be highly effective tools for program structuring. Modules emphasize explicit configuration of program components and the use of...
Manuel M. T. Chakravarty, Gabriele Keller, Simon L...
Proof-carrying code (PCC) is a general framework that can, in principle, verify safety properties of arbitrary machine-language programs. Existing PCC systems and typed assembly l...
We present a compositional program logic for call-by-value imperative higher-order functions with general forms of aliasing, which can arise from the use of reference names as fun...
The concept of a "unique" object arises in many emerging programming languages such as Clean, CQual, Cyclone, TAL, and Vault. In each of these systems, unique objects ma...
Existential types provide a simple and elegant foundation for uning generative abstract data types, of the kind supported by the Standard ML module system. However, in attempting ...
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...
Datatype-generic programming (DGP) is the next step beyond abstracting over types using parametric polymorphism, which is often called "genericity" in object-oriented la...
Generic libraries, such as the C++ Standard Template Library (STL), provide flexible, high-performance algorithms and data types, along with functional specifications and performa...
Design patterns are reusable abstractions in object-oriented software. However, using current mainstream programming languages, these elements can only be expressed extra-linguist...