We show how some classical static analyses for imperative programs, and the optimizing transformations which they enable, may be expressed and proved correct using elementary logi...
A good object-oriented design does not necessarily make a good component-based design, and vice versa. What design principles do components introduce? This paper examines componen...
We present an automated approach to prove termination of Java Bytecode (JBC) programs by automatically transforming them to term rewrite systems (TRSs). In this way, the numerous t...
Carsten Otto, Marc Brockschmidt, Christian von Ess...
This paper introduces stratified programming, a novel approach for program construction. In essence, stratified programming allows the developer to build and software at various l...
In current-day software development, programmers often use programming patterns to clarify their intents and to increase the understandability of their programs. Unfortunately, mo...