To say that a good programmer can write good software in any language is like saying that a good pilot can fly any aircraft: true, but irrelevant. The choice of a programming language is one of the most important factors that influence the ultimate quality of a software system. Unfortunately, too many programmers have poor linguistic skills: they are passionately in love with their "native" language, but are not able to analyze language constructs. 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.
The book compares constructs from C with constructs from Ada in terms of levels of abstraction. Studying these languages provides a firm foundation for an extensive examination of object-oriented language support in C++ and Ada 95. The final chapters introduce functional (ML) and logic (Prolog) programming languages to demonstrate that imperative languages are not conceptual necessities for programming. 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, More on Object-Oriented Programming, Functional Programming, Logic Programming, Where to get Compilers, Selected Bibliography, Index.