Programming Language: Principles and Practice third edition - Kenneth C. Louden (Cengage Learning, 2012)