Programming Languages is a self-contained approach to the topic, and differentiates between the design, implementation and pragmatic aspects of programming languages overall. The main programming paradigms are presented, in a straightforward way.
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.
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.
From the reviews:
"This undergraduate textbook on the principles of programming languages has many commendable aspects. It is grounded on sound principles of computing, with machines taking a central role. The authors use activation stacks and other machine-level abstractions to explain many complex ideas--such as scopes and evaluation mechanisms--in concrete terms. Furthermore, many aspects of C++, Java, and C# are covered and contrasted in substantial detail. ... In short, what the text covers, it covers well ... ." (Simon Thompson, ACM Computing Reviews, January, 2011)
"This book provides a detailed description of the main principles behind the design and implementation of modern programming languages. ... Primarily, the text is intended as a university textbook, but is also suitable for personal study of professionals who wish to deepen their knowledge of the mechanisms that lie behind the languages they use." (Stefan Meyer, Zentralblatt MATH, Vol. 1204, 2011)
"This undergraduate textbook on the principles of programming languages has many commendable aspects. It is grounded on sound principles of computing, with machines taking a central role. The authors use activation stacks and other machine-level abstractions to explain many complex ideas--such as scopes and evaluation mechanisms--in concrete terms. Furthermore, many aspects of C++, Java, and C# are covered and contrasted in substantial detail. ... In short, what the text covers, it covers well ... ." (Simon Thompson, ACM Computing Reviews, January, 2011)
"This book provides a detailed description of the main principles behind the design and implementation of modern programming languages. ... Primarily, the text is intended as a university textbook, but is also suitable for personal study of professionals who wish to deepen their knowledge of the mechanisms that lie behind the languages they use." (Stefan Meyer, Zentralblatt MATH, Vol. 1204, 2011)