Programming Languages: Principles and Paradigms - Gabbrielli, Maurizio; Martini, Simone; SpringerLink (Online service) (London : Springer London, 2010)
This excellent addition to the UTiCS series of undergraduate textbooks provides a detailed and up to date description of the main principles behind the design and implementation of modern programming languages. Rather than focusing on a specific language, the book identifies the most important principles shared by large classes of languages. To complete this general approach, detailed descriptions of the main programming paradigms, namely imperative, object-oriented, functional and logic are given, analysed in depth and compared. This provides the basis for a critical understanding of most of the programming languages. An historical viewpoint is also included, discussing the evolution of programming languages, and to provide a context for most of the constructs in use today. The book concludes with two chapters which introduce basic notions of syntax, semantics and computability, to provide a completely rounded picture of what constitutes a programming language.
Abstract Machines -- How to Describe a Programming Language -- Foundations -- Names and The Environment -- Memory Management -- Control Structure -- Control Abstraction -- Structuring Data -- Data Abstraction -- The Object-Oriented Paradigm -- The Functional Paradigm -- The Logic Programming Paradigm -- A Short Historical Perspective.
Keywords: Computer science; Computer Science; Computer Science, general; Programming Languages, Compilers, Interpreters