Table of Contents
Introduction
MULTITUDE OF PROBLEM DOMAINS
MOTIVATION
LEARNING OUTCOMES
PROGRAM AND COMPONENTS
INTEROPERABILI TY OF PROGRAMMING LANGUAGES
SOFTWARE DEVELOPMENT CYCLE
CRITERIA FOR A GOOD PROGRAMMING LANGUAGE
HISTORY OF PROGRAMMING PARADIGMS AND LANGUAGES
CLASSIFICATION OF LANGUAGES
Background and Fundamental Concepts
VON NEUMANN MACHINE
DISCRETE STRUCTURES CONCEPTS
DATA STRUCTURE CONCEPTS
ABSTRACT CONCEPTS IN COMPUTATION
Syntax and Semantics
INTRODUCTION TO SYNTAX AND SEMANTICS
GRAMMARS
SYNTAX DIAGRAMS
VALIDATING SENTENCE STRUCTURE
SEMANTICS
Abstractions in Programs and Information Exchange
DATA ABSTRACTIONS
CONTROL ABSTRACTIONS
INFORMATION EXCHANGE
PARAMETER PASSING
SIDE EFFECTS
EXCEPTION HANDLING
NONDETERMINISTIC COMPUTATION
PROGRAMS AS DATA
SOFTWARE REUSE
CASE STUDY
Implementation Models for Imperative Languages
ABSTRACT COMPUTING MACHINE
TRANSLATING CONTROL ABSTRACTIONS
STATIC ALLOCATION
HYBRID ALLOCATION
IMPLEMENTING PARAMETER PASSING
L OW-LEVEL BEHAVIOR OF RECURSIVE PROCEDURES
IMPLEMENTING EXCEPTION HANDLER
Dynamic Memory Management
HEAP ORGANIZATION
ALLOCATION OF DYNAMIC DATA OBJECTS
DEALLOCATION OF DYNAMIC DATA OBJECTS
FRAGMENTATION
GARBAGE COLLECTION—RECYCLING HEAP MEMORY
START-AND-STOP GARBAGE COLLECTION
INCREMENTAL GARBAGE COLLECTION
CONTINUOUS REFE RENCE-COUNT GARBAGE COLLECTION
CONCURRENT GARBAGE COLLECTION
ISSUES IN GARBAGE COLLE CTION
Type Theory
A DVANTAGE S OF TYPE DECLARATION
NOTION OF TYPE
SET OPERATIONS AND STRUCTURED TYPES
LIMITATIONS OF TYPE THEORY
POLYMORPHISM
TYPE SYSTEM IN MODERN PROGRAMMING LANGUAGES
TYPE EQUIVALENCE
I MPLEMENTATION OF TYPES
CASE STUDY
Concurrent Programming Paradigm
CONCURRENT EXECUTION AND ABSTRACTIONS
PROGRAM DEPENDENCY AND AUTOMATIC PARALLELIZATION
TASK AND DATA PARALLELISM
DISTRIBUTED COMPUTING
COMMUNICATING SEQUENTIAL PROCESSES
MEMORY MODELS FOR CONCURRENCY
CONCURRENT PROGRAMMING CONSTRUCTS
CASE STUDY
Functional Programming Paradigm
EXPRESSIONS
EVALUATION OF λ-EXPRESSIONS
FPS—FUNCTIONAL PROGRAMMING SYSTEMS
A BSTRACTIONS AND PROGRAMMING
IMPLEMENTATION MODELS FOR FUNCTIONAL LANGUAGES
INTEGRATION WITH OTHER PROGRAMMING PARADIGMS
Logic Programming Paradigm
LOGIC PROGRAMMING FUNDAMENTAL S
ABSTRACT IMPLEMENTATION MODEL
PROGRAMMING USING PROLOG
EXTENDING LOGIC PROGRAMMING PARADIGM
INTEGRATION WITH OTHER PARADIGMS
Object-Oriented Programming Paradigm
CLASSES AND OBJECTS
CLASS HIERARCHY AND INHERITANCE
VISIBILI TY AND INFORMATION EXCHANGE
POLYMORPHISM AND TYPE CONVERSION
CASE STUDIES
IMPLEMENTATION OF OBJECT-ORIENTED LANGUAGES
DISTRIBUTED OBJECT-ORIENTED MODELS
Web and Multimedia Programming Paradigms
CODE AND DATA MOBILITY
WEB-BASED PROGRAMMING
VIRTUAL MACHINES AND RUN-TIME INTERFACE
COMPONENTS OF MULTIMEDIA SYSTEMS
MULTIMEDIA PROGRAMMING CONSTRUCTS
CASE STUDY
Other Programming Paradigms
EVENT-BASED PROGRAMMING
AGENT-BASED PROGRAMMING
HIGH PRODUCTIVITY MASSIVE PARALLEL PROGRAMMING
SYNCHRONOUS LANGUAGES
Scripting Languages
COMPONENTS OF SCRIPTING LANGUAGES
ABSTRACTIONS IN SCRIPTING LANGUAGES
CASE STUDY
Conclusion and Future of Programming Languages
EVOLUTION OF PROGRAMMING PARADIGMS AND LANGUAGES
EVOLUTION OF IMPLEMENTATION MODELS AND COMPILERS
CONSTRUCT DESIGN AND COMPREHENSION
FUTURE DEVELOPMENT OF PROGRAMMING LANGUAGES
Appendices
Bibliography
Index