The Science of Programming by David Gries