Language Design Issues / 1: |
Why Study Programming Languages? A Short History of Programming Languages |
Role of Programming Languages |
Programming Environments |
C Overview |
Impact of Machine Architectures / 2: |
The Operation of a Computer |
Virtual Computers and Binding Times |
Language Translation Issues / 3: |
Programming Language Syntax |
Stages in Translation |
Formal Translation Models |
Recursive Descent Parsing |
Pascal Overview |
Modeling Language Properties / 4: |
Formal Properties of Languages |
Language Semantics |
Elementary Data Types / 5: |
Properties of Types and Objects |
Scalar Data Types |
Composite Data Types |
FORTRAN Overview |
Encapsulation / 6: |
Structured Data Types |
Abstract Data Types |
Encapsulation by Subprograms |
Type Definitions |
C++ Overview |
Inheritance / 7: |
Abstract Data Types Revisited |
Polymorphism |
Sequence Control / 8: |
Implicit and Explicit Sequence Control |
Sequencing with Arithmetic Expressions |
Sequence Control between Statements |
Sequencing with Nonarithmetic Expressions |
Subprogram Control / 9: |
Subprogram Sequence Control |
Attributes of Data Control |
Parameter Transmission |
Explicit Common Environments |
Storage Management / 10: |
Elements Requiring Storage |
Programmer- and System-Controlled Storage |
Static Storage Management |
Heap Storage Management |
Distributed Processing / 11: |
Variations on Subprogram Control |
Parallel Programming |
Hardware Developments |
Software Architecture |
Network Programming / 12: |
Desktop Publishing |
The World Wide Web |
Appendix: Language Summaries |
Ada |
C |
C++ |
FORTRAN |
Java |
LISP |
ML |
Pascal |
Perl |
Postscript |
Prolog |
Smalltalk |
References |
Index |
Language Design Issues / 1: |
Why Study Programming Languages? A Short History of Programming Languages |
Role of Programming Languages |
Programming Environments |
C Overview |
Impact of Machine Architectures / 2: |