Programming languages : principles and paradigms - Gabbrielli, Maurizio (Springer, 2010)