Автор: Maurizio Gabbrielli, Simone Martini
Издательство: Springer
Серия: Undergraduate Topics in Computer Science
Год: 2023
Страниц: 574
Язык: английский
Формат: pdf (true)
Размер: 10.1 MB
The goal of the book is to provide the basis for a critical understanding of most modern programming languages. Thus, rather than focusing on a specific language, the book identifies the most important principles shared by large classes of languages. The notion of ‘abstract machine’ is a unifying concept that helps to maintain an accurate and elementary treatment. The book introduces, analyses in depth, and compares the imperative, object-oriented, functional, logic, concurrent, constraint-based, and service-oriented programming paradigms. All material coming from the first English edition has been updated and extended, clarifying some tricky points, and discussing newer programming languages. This second edition contains new chapters dedicated to constraint, concurrent, and service-oriented programming.
The second new chapter concerns concurrent programming. Although our aim remains that of an introductory textbook, the absence of any reference to concurrency seemed to us too conspicuous a gap, given that a significant part of software today exploits concurrency, from the operating system level up to the Web services. An exhaustive treatment of this topic would require (at least) a volume by itself. The chapter illustrates only the main problems that arise when switching from sequential to concurrent programs, together with the relative solutions. We tried to offer an adequate panorama of the main techniques and linguistic constructs for realizing interaction mechanisms, synchronization, and communication between concurrent programs or processes. Following the guiding principle of the whole book, we have not referred to a specific language, even if we have tried to make some notions concrete by examining the case of Java.
Скачать Programming Languages: Principles and Paradigms (2nd Edition)