Programming language concepts - Ghezzi, Carlo (1998)