Modula-2, constructive program development - Messer, P. A. (Computer science texts, 1986)