Description: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 languagesAdditional case-study languages: Python, Haskell, Prolog and AdaExtensive end-of-chapter exercises with sample solutions on the companion Web siteDeepens study by examining the motivation of programming languages not just their features