Programming languages : principles and practice - Louden, Kenneth C. (PWS-Kent series in computer science, 2012)