Computer programmers (and students learning to become programmers) now need to have a wide range of experience of different languages and programming 'paradigms'. In this book the authors survey many of the major programming languages by comparing and contrasting the essential concepts underlying each type of language.