Modern IDEs for object-oriented languages like Java provide support for a basic set of simple automated refactorings whose behaviour is easy to describe intuitively. It is, howeve...
Design rules express constraints on the behavior and structure of a program. These rules can help ensure that a program follows a set of established practices, and avoids certain ...
We present the current state of our STSLib project. This project aims at defining an environment to formally specify and execute software components. One important feature is that...
We propose a type system for locating the source of type errors in an applied lambda calculus with ML-style polymorphism. The system is based on discriminative sum types--known fr...
The ability to treat code as data within a programming language is a powerful feature. Smalltalk introduces an object called a block that represents code as data. We propose a for...