Programming languages principles and paradigms - Tucker, Allen B. (McGraw-Hill Higher Education, 2007)