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...
We propose a novel approach based on coinductive logic to specify type systems of programming languages. The approach consists in encoding programs in Horn formulas which are inter...
Contemporary refactoring tools for JAVA aiding in the restructuring of programs have problems with respecting access modifiers such as public and private: while some tools provide ...
Software frameworks impose constraints on how plugins may interact with them. Many of hese constraints involve multiple objects, are temporal, and depend on runtime values. Additi...
Modern development environments support refactoring by providing atomically behaviour-preserving transformations. While useful, these transformations are limited in three ways: (i)...