Type-based termination is a semantically intuitive method that ensures termination of recursive definitions by tracking the size of datatype elements, and by checking that recursiv...
Sharing analysis and uniqueness typing are static analyses that aim at determining which of a program's objects are to be used at most once. There are many commonalities betw...
Self-representation – the ability to represent programs in their own language – has important applications in reflective languages and many other domains of programming langu...
The region calculus of Tofte and Talpin is an annotated polymorphically typed lambda calculus which makes memory allocation and deallocation explicit. It is intended as an interme...
We present a type system for checking object immutability, read-only references, and class immutability in an open or closed world. To allow object initialization outside object co...