Автор: Saverio Perugini
Издательство: Jones & Bartlett Learning
Год: 2023
Страниц: 889
Язык: английский
Формат: pdf (true)
Размер: 15.0 MB
Programming Languages: Concepts and Implementation is a textbook on the fundamental principles of programming languages through a combination of concept-based and interpreter-based approaches. The book has an implementation-oriented focus and features conceptual and programming exercises that give students practical experience applying language theory and concepts. The book also showcases the construction of a progressive series of language interpreters in Python that cover the implementation of a host of core language concepts such as scope, first-class functions, and parameter passing. Other programming styles, including logic/declarative programming, and compelling language features, such as first-class continuations, are also discussed. Concepts are presented in Python, Scheme, jаvascript, Ruby, ML, Haskell, Prolog, and various other programming languages. This book is intended as a general-purpose textbook for a course on programming languages.
Before we implement concepts in languages, we commence by studying the most fundamental principles of languages and developing a vocabulary of concepts for subsequent study. Chapter 2 covers language definition and description methods (e.g., grammars). We also explore the fundamentals of functional programming (primarily in Scheme in Chapter 5), which is quite different from the styles of programming predominant in the languages with which students are probably most familiar. To manage the complexity inherent in interpreters, we must make effective use of data abstraction techniques. Thus, we also study data abstraction and, specifically, how to define inductive data types, as well as representation strategies to use in the implementation of abstract data types. In Chapters 10–12, we implement a progressive series of interpreters in Python, using functional and object-oriented techniques, for a language called Camille that operationalize the concepts that we study in the first module, including binding, scope, and recursion, and assess the differences in the resulting versions of Camille. Following the interpreter implementation module, we fan out and explore other styles of programming.
Скачать Programming Languages: Concepts and Implementation