Publisher's Synopsis
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.