Download Concepts of Programming Languages PDF

TitleConcepts of Programming Languages
LanguageEnglish
File Size8.7 MB
Total Pages1385
Table of Contents
                            CONCEPTS OF PROGRAMMING LANGUAGES
CONCEPTS OF PROGRAMMING LANGUAGES
CONCEPTS OF PROGRAMMING LANGUAGES
CONCEPTS OF PROGRAMMING LANGUAGES
CONCEPTS OF PROGRAMMING LANGUAGES
Changes for the Twelfth Edition of Concepts of Programming Languages
Supplemental Materials
Supplemental Materials
Supplemental Materials
Contents
CONCEPTS OF PROGRAMMING LANGUAGES
1 Preliminaries
1.1 Reasons for Studying Concepts of Programming Languages
1.2.4?Web Software
1.3.4?Cost
1.4.2?Programming Design Methodologies
1.5 Language Categories
1.6 Language Design Trade-Offs
1.7.4?Preprocessors
1.8 Programming Environments
SUMMARY
REVIEW QUESTIONS
PROBLEM SET
2 Evolution of the Major Programming Languages
2.1.2?Language Overview
2.2.4?Related Work
2.3.6?Evaluation
2.4.6?Related Languages
2.5.7?Evaluation
2.6.4?Evaluation
2.7.3?Evaluation
2.8.4?Evaluation
2.9.2?Origins and Characteristics of SNOBOL
2.10.2?Language Overview
2.11.3?Evaluation
2.12.2.2 Evaluation
2.13.3?Evaluation
2.14.5?Ada 95 and Ada 2005
2.15.3?Evaluation
2.16.5?Another Related Language: Delphi
2.17.3?Evaluation
2.18.5?Origins and Characteristics of Ruby
2.19.3?Evaluation
2.20.2?JSP
SUMMARY
BIBLIOGRAPHIC NOTES
REVIEW QUESTIONS
PROBLEM SET
PROGRAMMING EXERCISES
3 Describing Syntax and?Semantics
3.1 Introduction
3.2.2?Language Generators
3.3.3?Grammars and Recognizers
3.4.7?Evaluation
3.5.3.8 Evaluation
SUMMARY
BIBLIOGRAPHIC NOTES
REVIEW QUESTIONS
PROBLEM SET
4 Lexical and Syntax Analysis
4.1 Introduction
4.2 Lexical Analysis
4.3.4?The Complexity of Parsing
4.4.2?The LL Grammar Class
4.5.3?LR Parsers
SUMMARY
REVIEW QUESTIONS
PROBLEM SET
PROGRAMMING EXERCISES
5 Names, Bindings, and Scopes
5.1 Introduction
5.2.3?Special Words
5.3.4?Value
5.4.3.4 Implicit Heap-Dynamic Variables
5.5.7?Evaluation of Dynamic Scoping
5.6 Scope and Lifetime
5.7 Referencing Environments
5.8 Named Constants
SUMMARY
REVIEW QUESTIONS
PROBLEM SET
PROGRAMMING EXERCISES
6 Data Types
6.1 Introduction
6.2.3?Character Types
6.3.5?Implementation of Character String Types
6.4.3?Evaluation
6.5.9?Implementation of Array Types
6.6.2?Implementing Associative Arrays
6.7.4?Implementation of Record Types
6.8 Tuple Types
6.9 List Types
6.10.5?Implementation of Union Types
Variable-Size Cells?
6.12 Optional Types
6.13 Type Checking
6.14 Strong Typing
6.15 Type Equivalence
6.16 Theory and Data Types
SUMMARY
BIBLIOGRAPHIC NOTES
REVIEW QUESTIONS
PROBLEM SET
PROGRAMMING EXERCISES
7 Expressions and -Assignment Statements
7.1 Introduction
7.2.2.2 Referential Transparency and Side Effects
7.3 Overloaded Operators
7.4.3?Errors in Expressions
7.5.2?Boolean Expressions
7.6 Short-Circuit Evaluation
7.7.7?Assignment in Functional Programming Languages
7.8 Mixed-Mode Assignment
SUMMARY
REVIEW QUESTIONS
PROBLEM SET
PROGRAMMING EXERCISES
8 Statement-Level Control Structures
8.1 Introduction
8.2.2.4 Multiple Selection Using if
8.3.4?Iteration Based on Data Structures
8.4 Unconditional Branching
8.5 Guarded Commands
8.6 Conclusions
SUMMARY
REVIEW QUESTIONS
PROBLEM SET
PROGRAMMING EXERCISES
9 Subprograms
9.1 Introduction
9.2.4?Procedures and Functions
9.3 Design Issues for Subprograms
9.4.2?Nested Subprograms
9.5.8?Examples of Parameter Passing
9.6 Parameters That Are Subprograms
9.7 Calling Subprograms Indirectly
9.8.3?Number of Returned Values
9.9 Overloaded Subprograms
9.10.4?Generic Functions in F#
9.11 User-Defined Overloaded Operators
9.12 Closures
9.13 Coroutines
SUMMARY
REVIEW QUESTIONS
PROBLEM SET
PROGRAMMING EXERCISES
10 Implementing Subprograms
10.1 The General Semantics of Calls and Returns
10.2 Implementing ��Simple�� Subprograms
10.3.3?Recursion
10.4.2?Static Chains
10.5 Blocks
10.6.2?Shallow Access
SUMMARY
REVIEW QUESTIONS
PROBLEM SET
PROGRAMMING EXERCISES
11 Abstract Data Types and Encapsulation Constructs
11.1 The Concept of Abstraction
11.2.3?An Example
11.3 Design Issues for Abstract Data Types
11.4.4.4 Evaluation
11.5.3?C# 2005
11.6.4?C# Assemblies
11.7.3?Ruby Modules
SUMMARY
REVIEW QUESTIONS
PROBLEM SET
PROGRAMMING EXERCISES
12 Support for Object--Oriented Programming
12.1 Introduction
12.2.3?Dynamic Binding
12.3.7?Initialization of Objects
12.4.5.4 Evaluation
12.5.2?Dynamic Binding of Method Calls to Methods
12.6.4?Reflection in C#
SUMMARY
REVIEW QUESTIONS
PROBLEM SET
PROGRAMMING EXERCISES
13 Concurrency
13.1.3?Motivations for the Use of Concurrency
13.2.3?Design Issues
13.3.4?Evaluation
13.4.4?Evaluation
13.5.2?The Concept of Synchronous Message Passing
13.6.5?Evaluation
13.7.8?Evaluation
13.8.3?Evaluation
13.9.3?F#
13.10.1?High-Performance Fortran
SUMMARY
BIBLIOGRAPHIC NOTES
REVIEW QUESTIONS
PROBLEM SET
PROGRAMMING EXERCISES
14 Exception Handling and Event Handling
14.1.2?Design Issues
14.2.6?Evaluation
14.3.8?Evaluation
14.4.2?Ruby
14.5 Introduction to Event Handling
14.6.2?The Java Event Model
14.7 Event Handling in C#
SUMMARY
BIBLIOGRAPHIC NOTES
REVIEW QUESTIONS
PROBLEM SET
PROGRAMMING EXERCISES
15 Functional Programming Languages
15.1 Introduction
15.2.2?Functional Forms
15.3 Fundamentals of Functional Programming Languages
15.4.2?The First Lisp Interpreter
15.5.14?Functions That Build Code
15.6 Common Lisp
15.7 ML
15.8 Haskell
15.9 F#
15.10 Support for Functional Programming in Primarily Imperative Languages
15.11 A Comparison of Functional and Imperative Languages
SUMMARY
BIBLIOGRAPHIC NOTES
REVIEW QUESTIONS
PROBLEM SET
PROGRAMMING EXERCISES
16 Logic Programming Languages
16.1 Introduction
16.2.2?Clausal Form
16.3 Predicate Calculus and Proving Theorems
16.4 An Overview of Logic Programming
16.5 The Origins of Prolog
16.6.7?List Structures
16.7.4?Intrinsic Limitations
16.8.3?Natural-Language Processing
SUMMARY
BIBLIOGRAPHIC NOTES
REVIEW QUESTIONS
PROBLEM SET
PROGRAMMING EXERCISES
Bibliography
Index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
                        
Document Text Contents
Page 692

are the values or addresses provided by the caller.

Local scalar variables are bound to storage within an activation record
instance. Local variables that are structures are sometimes allocated
elsewhere, and only their descriptors and a pointer to that storage are part of
the activation record. Local variables are allocated and possibly initialized in
the called subprogram, so they appear last.

Consider the following skeletal C function:

void sub(float total, int part) {

int list[5];

float sum;

. . .

}

The activation record for sub is shown in Figure 10.4.

Page 693

Figure 10.4 The activation
record for function sub

Similer Documents