Synopses & Reviews
Concepts in Programming Languages elucidates the central concepts used in modern programming languages, such as functions, types, memory management, and control. The book is unique in its comprehensive presentation and comparison of major object-oriented programming languages. Separate chapters examine the history of objects, Simula and Smalltalk, and the prominent languages C++ and Java. The author presents foundational topics, such as lambda calculus and denotational semantics, in an easy-to-read, informal style, focusing on the main insights provided by these theories. Advanced topics include concurrency, concurrent object-oriented programming, program components, and inter-language interoperability. A chapter on logic programming illustrates the importance of specialized programming methods for certain kinds of problems.
A comprehensive undergraduate textbook covering both theory and practical design issues, with an emphasis on object-oriented languages.
This general textbook on programming languages is designed for undergraduate andbeginning graduate students with some knowledge of basic programming. It teaches the concepts that appear in programming languages, issues that arise in their implementation, and the way that language design affects program development. Each chapter contains an extensive list of homework exercises, tested at several universities.A unique feature of the book is the comprehensive presentation of and comparison between major object-oriented programming languages. Separate chapters examine the history of objects, Simula and Smalltalk, and the prominent languages C++ and Java, giving the reader a solid understanding of the design goals for each of these languages and the central trade-offs between programming expressiveness and implementation efficiency.
Table of Contents
Part I. Functions and Foundations: 1. Introduction; 2. Computability; 3. Lisp: functions, recursion and lists; 4. Fundamentals; Part II. Procedures, Types, Memory Management and Control: 5. The Algol family and ML; 6. Type systems and type inference; 7. Scope, functions and storage management; 8. Control in sequential languages; Part III. Modularity, Abstraction and Object-Oriented Programming: 9. Data abstraction and modularity; 10. Concepts in object-oriented languages; 11. History of objects: simula and smalltalk; 12. Objects and run-time efficiency: C++; 13. Portability and safety: Java; Part IV. Concurrency and Logic Programming: 14. Concurrent and distributed programming; 15. The logic programming paradigm and prolog by Krzysztof Apt; Appendix: additional programming examples; Glossary.