LaDeDa: Languages for Debuggable Distributed Algorithms
Venue
Lada 2012: Workshop on Languages for Distributed Algorithms (to appear)
Publication Year
2012
Authors
Mark S. Miller, Tom Van Cutsem
BibTeX
Abstract
When programming language designs are presented, the examples are almost
exclusively of correct programs. Most attention of programming language designers
is indeed on the beauty and elegance of correct programs. For incorrect programs,
great design attention is paid to catching errors early---such as fancy static type
systems---so that many incorrect programs are never run. Due to the success of
these efforts, many programs are either correct or inadmissible, conserving on the
need for programmer attention. As a result, most of the attention working
programmers spend looking at code is spent debugging incorrect running code. Often
this is code written by others and only partially understood. What properties
should such code have? How can programming language design encourage incorrect
programs to have those properties that facilitate debugging? Distributed programs
introduce additional difficult bugs of a different character. How should
distributed language design facilitate the debugging of distributed programs? We
explain how these considerations have affected four distributed language designs
(E, AmbientTalk, Joe-E/Waterken, Dr. SES) and one distributed debugging tool
(Causeway).
