Familiarizes students with the increasingly important “internet” paradigm for programming languages. Ex.___
Emphasizes its major importance in software design today. Ex.___
Exposes students to desktop publishing topics such as Latex and Postscript and to World Wide Web subjects such as CGI scripts, Java applets and XML. Ex.___
The history of these languages now discussed in context. Language summaries provide details of 12 languages covered in the text. Ex.___
Allows instructors to decide which languages to use as programming examples during the course. Ex.___
Covers the 12 knowledge units recommended by the 1991 ACM/IEEE Computer Society joint Curriculum Task Force for the programming languages subject area. Ex.___
Teaches aspects of computer design that will help students be good programmers. Ex.___
Provides a review of material needed to understand later chapters and provides a framework for discussing programming language design issues. Ex.___
Gives students hands-on practice. Ex.___
Gives students the opportunity to explore topics in greater depth. Ex.___
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. KEY TOPICS: 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. MARKET: For computer engineers and others interested in programming language designs.
(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.
The Operation of a Computer. Virtual Computers and Binding Times.
Programming Language Syntax. Stages in Translation. Formal Translation Models. Recursive Descent Parsing. Pascal Overview.
Formal Properties of Languages. Language Semantics.
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.
Implicit and Explicit Sequence Control. Sequencing with Arithmetic Expressions. Sequence Control between Statements. Sequencing with Nonarithmetic Expressions.
Subprogram Sequence Control. Attributes of Data Control. Parameter Transmission. Explicit Common Environments.
Elements Requiring Storage. Programmer- and System-Controlled Storage. Static Storage Management. Heap Storage Management.
Variations on Subprogram Control. Parallel Programming. Hardware Developments. Software Architecture.
Desktop Publishing. The World Wide Web.
Ada. C. C++. FORTRAN. Java. LISP. ML. Pascal. Perl. Postscript. Prolog. Smalltalk.