PhD Thesis Progress
Babelsberg
I am writing my dissertation on Babelsberg, a family of
language experiments and that implement a design for adding constraint
solving and automatically maintained assertions to ordinary
object-oriented languages. You know how you sometimes write
assert some.code.that.calls(stuff)
. And if your assertion
fails, you crash? In Babelsberg, you can write
always some.code.that.calls(stuff)
, and rather than
crashing directly, the system will attempt to “heal” the program state
to make the assertion pass (if it doesn’t already). This works great
more often than you would think, and sometimes it even completely frees
you from writing the code to establish a correct state in the first
place! Just let the system deal with it - a Sudoku solver? No problem, I
know what a valid solution should look like, I can just
always
that. Load balancing for video streaming, automatic
repair of partially downloaded image data, layouting. We’ve found a
number of interesting applications.
