Principles of Programming Language Design (Fifth Edition)

Author: Saibesta
Publisher:
Publish Date: 2004-04-01
Features: This book describes the basic concepts of programming languages by presenting design problems of various language structures, analyzing design choices in some common languages, and comparing different options. It does not teach readers how to use a language but discusses the structure and features of languages and their different designs and implementations in various languages, as well as how to choose the appropriate language for a given task. The descriptive style used in this book not only provides readers with the tools needed to critically evaluate existing and future programming languages but also enhances their ability to learn new languages and understand the importance of language implementation. This book is suitable as a textbook for undergraduate computer science students taking the Principles of Programming Languages course, but it is also an ideal book for experienced programmers to gain an in-depth understanding of programming languages.
Key Features:
● Discusses various language structures and design choices using Java, JavaScript, C++, Perl, Ada, and Fortran
● Combines object-oriented programming with non-object-oriented imperative languages
● Provides historical background on the specific design choices of existing languages
Starting with why to learn programming languages, standards for evaluating programming languages and language structures, common design trade-offs, and basic implementation methods, this book briefly describes the evolution of most of the languages discussed in this book. It also discusses syntax and semantics in Chapter 3 and adds lexical and syntactic analysis content for schools that do not offer a compiler course in Chapter 4. The book primarily describes the design problems and implementation of the main structures of imperative languages, covering topics such as variables, data types, expressions and assignment statements, control statements, subroutines, data abstraction facilities, language features that support object-oriented programming (inheritance and dynamic method binding), concurrent program units, and exception handling. The last two chapters describe functional programming languages and logic programming languages. This book is widely applicable, serving as both a textbook for undergraduate computer science students taking programming language courses and a reference book for self-study. Experienced computer professionals can also use it to update their knowledge.

📌 Related Posts