Principles of programming languages - Dowek, Gilles (Undergraduate topics in computer science, 2009)