For undergraduate and beginning graduate students, this textbook explains and examines 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. This book will give the reader a better understanding of the issues and tradeoffs that arise in programming language design, and a better appreciation of the advantages and pitfalls of the programming languages they use.
'... an extremely rich source of important information, subtle issues, and diverse and challenging exercises ... the book is interesting, challenging and a pleasure to read.' JFP
"The book's three goals are achieved admirably: to discuss the design decisions and tradeoffs of various programming languages, to compare programming languages to deepen understanding, and to present language-specific programming techniques... This is the text one would use in a course on programming languages. Highly recommended." Choice
"It is an excellent book on programming languages, and one that lecturers would enjoy using and students would gain much from having and reading...The exercises are excellent, and range from basic exercises to ones that, if they don't inspire new careers, ought at least generate fine projects. ..I am sure this book will be a success and we will soon see further editions...Indeed it is an inspiring book." LTSN Book Reviews