Always-available static and dynamic feedback

Download: PDF, slides (PDF), slides (PowerPoint), DuctileJ implementation.

“Always-available static and dynamic feedback” by Michael Bayne, Richard Cook, and Michael D. Ernst. In ICSE 2011, Proceedings of the 33rd International Conference on Software Engineering, (Waikiki, Hawaii, USA), May 2011, pp. 521-530.
A previous version appeared as “How tests and proofs impede one another: The need for always-on static and dynamic feedback” by Michael D. Ernst. In TAP 2010: 4th International Conference on Tests And Proofs (TAP), (Málaga, Spain), July 2010, pp. 1-2.
A previous version appeared as “How analysis can hinder source code manipulation — and what to do about it” by Michael D. Ernst. In SCAM 2009: Ninth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'09), (Edmonton, Canada), Sep. 2009.

Abstract

Developers who write code in a statically typed language are denied the ability to obtain dynamic feedback by executing their code during periods when it fails the static type checker. They are further confined to the static typing discipline during times in the development process where it does not yield the highest productivity. If they opt instead to use a dynamic language, they forgo the many benefits of static typing, including machine-checked documentation, improved correctness and reliability, tool support (such as for refactoring), and better runtime performance.

We present a novel approach to giving developers the benefits of both static and dynamic typing, throughout the development process, and without the burden of manually separating their program into statically- and dynamically-typed parts. Our approach, which is intended for temporary use during the development process, relaxes the static type system and provides a semantics for many type-incorrect programs. It defers type errors to run time, or suppresses them if they do not affect runtime semantics.

We implemented our approach in a publicly available tool, DuctileJ, for the Java language. In case studies, DuctileJ conferred benefits both during prototyping and during the evolution of existing code.

Download: PDF, slides (PDF), slides (PowerPoint), DuctileJ implementation.

BibTeX entry:

@inproceedings{BayneCE2011,
   author = {Michael Bayne and Richard Cook and Michael D. Ernst},
   title = {Always-available static and dynamic feedback},
   booktitle = {ICSE 2011, Proceedings of the 33rd International
	Conference on Software Engineering},
   pages = {521--530},
   address = {Waikiki, Hawaii, USA},
   month = may,
   year = {2011}
}

(This webpage was created with bibtex2web.)

Back to Michael Ernst's publications.