Explains the concepts underlying programming languages, and demonstrates how these concepts are synthesized in the major paradigms: imperative, OO, concurrent, functional, logic and with recent scripting languages. It gives greatest prominence to the OO paradigm.
* Includes numerous examples using C, Java and C++ as exmplar languages
* Additional case-study languages: Python, Haskell, Prolog and Ada
* Extensive end-of-chapter exercises with sample solutions on the companion Web site
* Deepens study by examining the motivation of programming languages not just their features