A Theory of Programming and its Application to the Design of Correct and Efficient Computer Programs - Hoare, C (1978)