Generalization tasks are important for continual improvement to the design of an evolving code base, eliminating redundancy where it has accumulated. An important step in generali...
Previous work has proven typestates to be useful for modeling protocols in object-oriented languages. We build on this work by addressing substitutability of subtypes as well as i...
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...
Reusable APIs often dene usage protocols. We previously developed a sound modular type system that checks compliance with typestate-based protocols while aording a great deal of al...
Abstract. Application frameworks provide reusable concepts that are instantiated in application code through potentially complex implementation steps such as subclassing, implement...
Abbas Heydarnoori, Krzysztof Czarnecki, Thiago T. ...