Understanding Programming Languages explains: what alternatives are available to the language designer, how language constructs should be used for safety and readability, how language constructs are implemented, the role of language in expressing and enforcing abstractions.
Book Description
The aim of this book is to help the student understand programming languages by analyzing and contrasting language constructs:
What alternatives are available to the language designer?
How are language constructs implemented?
How should they be used?We have not hesitated to be prescriptive: to claim that accumulated experience shows that certain constructs are to be preferred, and others to be avoided or at least used with caution.
Of course, any book on programming languages should not be taken as a reference manual for any particular language. The goal is to learn to analyze languages and not to study the peculiarities of any language in depth. Nor is the book a guide to the choice of a language for any particular project. The goal is to supply the student with the conceptual tools needed to make such a decision.
Table of Contents
- What Are Programming Languages?
- Elements of Programming Languages
- Programming Environments
- Elementary Data Types
- Composite Data Types
- Control Structures
- Subprograms
- Pointers
- Real Numbers
- Polymorphism
- Exceptions
- Concurrency
- Program Decomposition
- Object-Oriented Programming
- Functional Programming
- Logic Programming
- Java