Programming languages: principles and practice - Louden, Kenneth C.; Lambert, Kenneth A (Cengage Learning India Private Limited, 2012)