Unifying Theories of Programming - Butterfield, Andrew; Kanade, Takeo; Kittler, Josef (Springer Berlin Heidelberg, 2010)