Programming Languages: Principles and Paradigms - Gabbrielli, Maurizio (Undergraduate Topics in Computer Science, 2010)