Programming languages : principles and paradigms - Gabbrielli, Maurizio; Martini, Simone (Undergraduate topics in computer science, 2010)