Programming languages: principles and practice.- 3rd ed. - Louden, Kenneth (Cengage learning, 2014)