Synopses & Reviews
Exceptionally comprehensive in approach, this book explores the major issues in both design and implementation of modern programming languages and provides a basic introduction to the underlying theoretical models on which these languages are based. The emphasis throughout is on fundamental concepts—readers learn important ideas, not minor language differences--but several languages are highlighted in sufficient detail to enable readers to write programs that demonstrate the relationship between a source program and its execution behavior--e.g., C, C++, JAVA, ML, LISP, Prolog, Smalltalk, Postscript, HTML, PERL, FORTRAN, Ada, COBOL, BASIC SNOBOL4, PL/I, Pascal. Begins with a background review of programming languages and the underlying hardware that will execute the given program; then covers the underlying grammatical model for programming languages and their compilers (elementary data types, data structures and encapsulation, inheritance, statements, procedure invocation, storage management, distributed processing, and network programming). Includes an advanced chapter on language semantics--program verification, denotational semantics, and the lambda calculus. For computer engineers and others interested in programming language designs.
Focusing on the underlying software and hardware architecture that guides language design, this text aims to help students understand why certain decisions are more rational than others in building a program. Several languages are highlighted in sufficient detail to enable students to write programs that demonstrate the relationship between a source program and its execution behaviour.
Table of Contents
(NOTE: Each chapter concludes with Suggestions for Further Reading and Problems.
1. Language Design Issues.
Why Study Programming Languages? A Short History of Programming Languages. Role of Programming Languages. Programming Environments. C Overview.
2. Impact of Machine Architectures.
The Operation of a Computer. Virtual Computers and Binding Times.
3. Language Translation Issues.
Programming Language Syntax. Stages in Translation. Formal Translation Models. Recursive Descent Parsing. Pascal Overview.
4. Modeling Language Properties.
Formal Properties of Languages. Language Semantics.
5. Elementary Data Types.
Properties of Types and Objects. Scalar Data Types. Composite Data Types. FORTRAN Overview.
Structured Data Types. Abstract Data Types. Encapsulation by Subprograms. Type Definitions. C++ Overview.
Abstract Data Types Revisited. Inheritance. Polymorphism.
8. Sequence Control.
Implicit and Explicit Sequence Control. Sequencing with Arithmetic Expressions. Sequence Control between Statements. Sequencing with Nonarithmetic Expressions.
9. Subprogram Control.
Subprogram Sequence Control. Attributes of Data Control. Parameter Transmission. Explicit Common Environments.
10. Storage Management.
Elements Requiring Storage. Programmer- and System-Controlled Storage. Static Storage Management. Heap Storage Management.
11. Distributed Processing.
Variations on Subprogram Control. Parallel Programming. Hardware Developments. Software Architecture.
12. Network Programming.
Desktop Publishing. The World Wide Web.
Appendix: Language Summaries.
Ada. C. C++. FORTRAN. Java. LISP. ML. Pascal. Perl. Postscript. Prolog. Smalltalk.