This book proposes a purely classical first-order logical approach to the theory of programming. It provides a unified framework to present new programming theories and logics systematically and to investigate and compare existing ones with respect to their expressive and proof-theoretic powers.