Bansal, Arvind Kumar.

Introduction to programming languages/ Arvind Kumar Bansal - Boca Raton: CRC press, 2014. - xxxv, 588 p. : ill. ; 26 cm.

"Chapman & Hall book."

Includes bibliographical references (pages 557-566) and index.

Chapter 1 ■ Introduction
1.1 MULTITUDE OF PROBLEM DOMAINS
1.2 MOTIVATION
1.3 LEARNING OUTCOMES
1.4 PROGRAM AND COMPONENTS
1.4.1 Abstractions in Programs
1.4.2 Program Comprehension and Jumps
1.4.3 Execution of Programs
1.5 INTEROPERABILITY OF PROGRAMMING LANGUAGES
1.6 SOFTWARE DEVELOPMENT CYCLE
1.7 CRITERIA FOR A GOOD PROGRAMMING LANGUAGE
1.8 HISTORY OF PROGRAMMING PARADIGMS AND LANGUAGES
1.8.1 Imperative Programming Paradigm
1.8.2 Declarative Programming Paradigm
1.8.3 Object-Oriented Programming Paradigm
1.8.4 Concurrent Programming Paradigm
1.8.5 Visual Programming Paradigm
1.8.6 Multimedia Programming Paradigm
1.8.7 Web-Based Programming Paradigm
1.8.8 Event-Based Programming Paradigm
1.8.9 Integration of Programming Paradigms
1.9 CLASSIFICATION OF LANGUAGES
1.9.1 Programming Paradigms-Based Classification
1.9.2 Implementation-Based Classification
1.9.3 Other Classifications
1.10 SUMMARY
1.11 ASSESSMENT
1.11.1 Concepts and Definitions
1.11.2 Problem Solving
1.11.3 Extended Response
FURTHER READING
Chapter 2 ■ Background and Fundamental Concepts
2.1 VON NEUMANN MACHINE
2.1.1 Address Mechanisms
2.2 DISCRETE STRUCTURES CONCEPTS
2.2.1 Set Operations
2.2.2 Boolean Logic and Predicate Calculus
2.2.3 Recursion
2.2.4 Finite State Machines
2.3 DATA STRUCTURE CONCEPTS
2.3.1 Sequences
2.3.2 Stacks and Queues
2.3.3 Reference Mechanisms
2.3.4 Recursive Data Structures
2.3.5 Trees
2.3.6 Graphs
2.3.7 Exhaustive Search
2.3.8 Mapping Data Structures in Linear Memory
2.3.9 Hash Tables
2.4 ABSTRACT CONCEPTS IN COMPUTATION
2.4.1 Mutable versus Immutable Variables
2.4.2 Bindings and Scope Rules
2.4.3 Types of Variables
2.4.4 Environment and Store
2.4.5 Functions and Procedures
2.4.6 Abstracting the Program Execution
2.4.7 Processes and Threads
2.4.8 Buffers
2.5 SUMMARY
2.6 ASSESSMENT
2.6.1 Concepts and Definitions
2.6.2 Problem Solving
2.6.3 Extended Response
FURTHER READING
Chapter 3 ■ Syntax and Semantics
3.1 INTRODUCTION TO SYNTAX AND SEMANTICS
3.2 GRAMMARS
3.2.1 Types of Grammars
3.2.2 Representing Grammar Using Backus-Naur Form
3.2.3 Extended Backus-Naur Form (EBNF)
3.2.4 Attribute Grammar
3.2.5 Hyper-Rules and Meta-Definitions
3.2.6 Abstract Syntax
3.3 SYNTAX DIAGRAMS
3.3.1 Translating Syntax Rules to Syntax Diagrams
3.3.2 Translating Syntax Diagrams to Syntax Rules
3.4 VALIDATING SENTENCE STRUCTURE
3.4.1 Lexical Analysis
3.4.2 Parsing
3.4.3 Handling Grammar Ambiguities
3.4.4 Abstract Syntax Tree
3.4.5 Automated Parsing
3.5 SEMANTICS
3.5.1 Operational Semantics
3.5.2 Axiomatic Semantics
3.5.3 Denotational Semantics
3.5.4 Action Semantics
3.5.5 Other Models of Semantics
3.6 SUMMARY 115
3.7 ASSESSMENT
3.7.1 Concepts and Definitions
3.7.2 Problem Solving
3.7.3 Extended Response
FURTHER READING
Chapter 4 ■ Abstractions in Programs and Information Exchange
4.1 DATA ABSTRACTIONS
4.1.1 Single Data Entities
4.1.2 Composite Data Entities
4.1.3 Collection of Data Entities
4.1.4 Extensible Data Entities
4.1.5 Ordering and Accessing Data Entities
4.1.6 Interconnected Data Entities
4.1.7 Persistence
4.1.8 Declarations and Environment Change
4.2 CONTROL ABSTRACTIONS
4.2.1 Assignment and Command Sequence
4.2.2 Conditional Statements
4.2.3 Iterative Constructs and Iterators
4.2.4 Block Structure
4.2.5 Program Units and Invocations
4.2.6 Modules
4.2.7 Objects and Classes
4.3 INFORMATION EXCHANGE
4.3.1 Mechanisms of Information Exchange
4.4 PARAMETER PASSING
4.4.1 Call-by-Value and Variations
4.4.2 Call-by-Reference and Variations
4.4.3 Call-by-Result
4.4.4 Call-by-Value-Result
4.4.5 Call-by-Name
4.4.6 Call-by-Need
4.4.7 Passing Subprograms as Parameters
4.4.8 Parameter Passing for Distributed Computing
4.5 SIDE EFFECTS
4.5.1 Aliasing and Side Effects
4.5.2 Regulating Side Effects
4.5.3 A Comprehensive Example
4.6 EXCEPTION HANDLING
4.7 NONDETERMINISTIC COMPUTATION
4.7.1 Guarded Commands
4.7.2 Stepwise Program Construction
4.8 PROGRAMS AS DATA
4.8.1 Functions as First-Class Objects
4.8.2 Meta-Programming and Reflexivity
4.9 SOFTWARE REUSE
4.9.1 Interoperability Revisited
4.10 CASE STUDY
4.10.1 Data Abstraction in Programming Languages
4.10.2 Control Abstractions in Programming Languages
4.10.3 Information Exchange in Programming Languages
4.11 SUMMARY
4.12 ASSESSMENT
4.12.1 Concepts and Definitions
4.12.2 Problem Solving
4.12.3 Extended Response
FURTHER READING
Chapter 5 ■ Implementation Models for Imperative Languages
5?i ABSTRACT COMPUTING MACHINE
5.2 TRANSLATING CONTROL ABSTRACTIONS
5.2.1 Translating Expressions
5.2.2 Translating Assignment Statement
5.2.3 Translating If-Then-Else Construct
5.2.4 Translating Case Statement
5.2.5 Translating Iterative Constructs
5.3 STATIC ALLOCATION
5.4 HYBRID ALLOCATION
5.4.1 Roles of Various Pointers
5.4.2 Calling Subprograms
5.4.3 Generating Data and Code Areas
5.5 IMPLEMENTING PARAMETER PASSING
5.5.1 Implementing Call-by-Value
5.5.2 Implementing Call-by-Reference
5.5.3 Implementing Call-by-Value-Result
5.6 LOW-LEVEL BEHAVIOR OF RECURSIVE PROCEDURES
5.7 IMPLEMENTING EXCEPTION HANDLER
5.8 SUMMARY
5.9 ASSESSMENT
5.9.1 Concepts and Definitions
5.9.2 Problem Solving
5.9.3 Extended Response
FURTHER READING
Chapter 6 ■ Dynamic Memory Management
6.1 HEAP ORGANIZATION
6.2 ALLOCATION OF DYNAMIC DATA OBJECTS
6.3 DEALLOCATION OF DYNAMIC DATA OBJECTS
6.4 FRAGMENTATION
6.5 GARBAGE COLLECTION—RECYCLING HEAP MEMORY
6.5.1 Garbage Collection Approaches
6.6 START-AND-STOP GARBAGE COLLECTION
6.6.1 Mark-and-Scan Algorithm
6.6.2 Copying Garbage Collection
6.6.3 Cheney's Modified Copying Garbage Collection
6.6.4 Generational Garbage Collection
6.7 INCREMENTAL GARBAGE COLLECTION
6.7.1 Baker's Algorithm
6.8 CONTINUOUS REFERENCE-COUNT GARBAGE COLLECTION
6.9 CONCURRENT GARBAGE COLLECTION
6.9.1 Concurrent Copying Garbage Collection
6.9.2 Concurrent Real-Time Garbage Collection
6.10 ISSUES IN GARBAGE COLLECTION
6.11 SUMMARY
6.12 ASSESSMENT
6.12.1 Concepts and Definitions
6.12.2 Problem Solving
6.12.3 Conceptual Type
FURTHER READING
Chapter 7 ■ Type Theory
7.1 ADVANTAGES OF TYPE DECLARATION
7.2 NOTION OF TYPE
7.2.1 Basic Data Types
7.3 SET OPERATIONS AND STRUCTURED TYPES
7.3.1 Ordinal Types
7.3.2 Cartesian Product and Tuples
7.3.3 Finite Mapping and Arrays
7.3.4 Pov^er Set and Set Constructs
7.3.5 Disjoint Union and Variant Record
7.3.6 Set Operations for Recursive Data Types
7.4 LIMITATIONS OF TYPE THEORY
7.5 POLYMORPHISM
7.5.1 Parametric Polymorphism
7.5.2 Inclusion Polymorphism and Subtypes
7.5.3 Overloading
7.5.4 Coercion
7.6 TYPE SYSTEM IN MODERN PROGRAMMING LANGUAGES
7.6.1 Universal Reference Type
7.7 TYPE EQUIVALENCE
7.7.1 Structure versus Name Equivalence
7.8 IMPLEMENTATION OF TYPES
7.8.1 Type Inference and Checking
7.8.2 Implementing Polymorphic Type Languages
7.9 CASE STUDY
7.9.1 Type System in Ada
7.9.2 Type System in C++
7.9.3 Type System in Modula-3
7.10 SUMMARY
7.11 ASSESSMENT
7.11.1 Concepts and Definitions
7.11.2 Problem Solving
7.11.3 Extended Response
FURTHER READING
Chapter 8 ■ Concurrent Programming Paradigm
8.1 CONCURRENT EXECUTION AND ABSTRACTIONS
8.1.1 Race Conditions
8.1.2 Threads and Dependencies
8.1.3 Synchronization and Mutual Exclusion
8.1.4 Sequential Consistency
8.2 PROGRAM DEPENDENCY AND AUTOMATIC
PARALLELIZATION
8.2.1 Control Dependency
8.2.2 Data Dependency
8.2.3 Program-Dependency Graph
8.2.4 Parallelization Techniques
8.2.5 Granularity and Execution Efficiency
8.2.6 Program Slicing
8.3 TASK AND DATA PARALLELISM
8.3.1 Task Parallelism
8.3.2 Data Parallelism
8.3.3 Integrating Task and Data Parallelism
8.4 DISTRIBUTED COMPUTING
8.4.1 Executing Remote Procedures
8.4.2 Parameter Passing in Remote Procedure Calls
8.5 COMMUNICATING SEQUENTIAL PROCESSES
8.5.1 CSP Algebra
8.5.2 Communicating Sequential Process Language
8.6 MEMORY MODELS FOR CONCURRENCY
8.6.1 Memory Model of C-H-l- •
8.7 CONCURRENT PROGRAMMING CONSTRUCTS
8.7.1 Coroutines
8.7.2 Cobegin-Coend
8.7.3 Fork-and-Join
8.7.4 Monitors
8.8 CASE STUDY
8.8.1 Concurrent Programming in Ada
8.8.2 Concurrent Programming in Java
8.8.3 Distributed Computing in Emerald
8.9 SUMMARY
8.10 ASSESSMENT
8.10.1 Concepts and Definitions
8.10.2 Problem Solving
8.10.3 Extended Response
FURTHER READING
Chapter 9 ■ Functional Programming Paradigm
9.1 EXPRESSIONS
9.2 EVALUATION OF X-EXPRESSIONS
9.2.1 Applicative-Order versus Normal-Order Reductions
9.3 FPS—FUNCTIONAL PROGRAMMING SYSTEMS
9.3.1 Kernel Functions
9.3.2 Functional-Forms for Constructing Complex Functions
9.3.3 Programming in FPS
9.3.4 Comparing X-Expressions and FPS
9.4 ABSTRACTIONS AND PROGRAMMING
9.4.1 Abstractions in Functional Programming Languages
9.4.2 Abstractions and Programming in the Lisp Family
9.4.3 Abstractions and Programming in Hope
9.4.4 Abstractions and Programming in Haskell
9.4.5 Abstractions and Functional Programming in Scala
9.4.6 Abstractions and Functional Programming in Ruby
9.5 IMPLEMENTATION MODELS FOR FUNCTIONAL
LANGUAGES
9.5.1 SECD Machine and Eager Evaluation
9.5.2 Graph-Reduction Strategies
9.5.3 Implementing Lazy Evaluation
9.6 INTEGRATION WITH OTHER PROGRAMMING
PARADIGMS
9.6.1 Concurrency in Functional Languages
9.7 SUMMARY
9.8 ASSESSMENT
9.8.1 Concepts and Definitions
9.8.2 Problem Solving
9.8.3 Conceptual Type
FURTHER READING
Chapter 10 ■ Logic Programming Paradigm
10.1 LOGIC PROGRAMMING FUNDAMENTALS
10.1.1 Facts and Rules
10.1.2 Forward and Backward Reasoning Systems
10.1.3 Data Representation
10.1.4 Unification—Bidirectional Information Flow
10.1.5 Representing Logic Programs
10.1.6 Properties of Logic Programs
10.2 ABSTRACT IMPLEMENTATION MODEL
10.2.1 Query Reduction
10.2.2 Mapping Query Reduction to AND-OR Tree
10.2.3 Backtracking
10.2.4 Warren Abstract Machine
10.2.5 Program Analysis
10.3 PROGRAMMING USING PROLOG
10.3.1 Cuts—Programmer-Directed Efficiency
10.3.2 Programming with Sets
10.3.3 Nondeterministic Programming
10.3.4 Abstractions and Meta-Programming
10.3.5 Limitations of Prolog
10.4 EXTENDING LOGIC PROGRAMMING PARADIGM
10.4.1 Temporal Logic Programming
10.4.2 Constraint Logic Programming
10.4.3 Inductive Logic Programming
10.4.4 Higher-Order Logic Programming
10.5 INTEGRATION WITH OTHER PARADIGMS
10.5.1 Integration with Functional Programming
10.5.2 Integration with Object-Oriented
Programming
10.5.3 Concurrent Logic Programming
10.6 SUMMARY
10.7 ASSESSMENT
10.7.1 Concepts and Definitions
10.7.2 Problem Solving
10.7.3 Extended Response
FURTHER READING
Chapter 11 ■ Object-Oriented Programming Paradigm
11.1 CLASSES AND OBJECTS
11.1.1 Object—An Instance of a Class
11.2 CLASS-HIERARCHY AND INHERITANCE
11.2.1 Subclasses
11.2.2 Virtual Methods
11.2.3 Multiple-Inheritance
11.3 VISIBILITY AND INFORMATION EXCHANGE
11.3.1 Visibility of Member Entities
11.3.2 Encapsulation
11.3.3 Information Exchange
11.4 POLYMORPHISM AND TYPE CONVERSION
11.4.1 Parametric Polymorphism and Generic
Templates
11.4.2 Casting
11.4.3 Subclass versus Subtyping
11.5 CASE STUDIES
11.5.1 Abstractions and Programming in C-j-P
11.5.2 Abstractions and Programming in Java
11.5.3 Abstractions and Programming in Scala
11.5.4 Abstractions and Programming in Ruby
11.6 IMPLEMENTATION OF OBJECT-ORIENTED LANGUAGES
11.6.1 Storage Allocation and Deallocation
11.6.2 Implementing Casting
11.6.3 Implementing Multiple-Inheritance
11.6.4 Implementing Virtual Entities and Methods
11.6.5 Overhead Issues and Optimizations
11.6.6 Run-Time Behavior
11.7 DISTRIBUTED OBJECT-ORIENTED MODELS
11.7.1 Distributed Objects in Emerald
11.7.2 Distributed Objects in Java
11.7.3 Remote Method Invocation
11.7.4 RMI-Based Programming
11.8 SUMMARY
11.9 ASSESSMENT
11.9.1 Concepts and Definitions
11.9.2 Problem-Solving
11.9.3 Extended Response
FURTHER READING
Chapter 12 ■ Web and Multimedia Programming Paradigms
12.1 CODE AND DATA MOBILITY
12.1.1 Issues in Mobile Computing
12.2 WEB-BASED PROGRAMMING
12.2.1 HTML
12.2.2 XML as Middleware Interface Language
12.2.3 Web Scripting
12.2.4 Applets
12.2.5 Security in Web Programming
12.3 VIRTUAL MACHINES AND RUN-TIME INTERFACE
12.3.1 Java Virtual Machine
12.3.2 Just-in-Time Compilation
12.4 COMPONENTS OF MULTIMEDIA SYSTEMS
12.4.1 Representation and Transmission
12.4.2 Perceptual Distortion
12.4.3 Synchronization in Multimedia
12.5 MULTIMEDIA PROGRAMMING CONSTRUCTS
12.5.1 Synchronization Constructs
12.6 CASE STUDY
12.6.1 Abstractions and Programming in Alice
12.6.2 Abstractions and Programming in SMIL
12.6.3 Abstractions and Web Programming in Javascript
12.6.4 Abstractions and Web Programming in C#
12.7 SUMMARY
12.8 ASSESSMENT
12.8.1 Concepts and Definitions
12.8.2 Problem Solving
12.8.3 Extended Response
FURTHER READING
Chapter 13 ■ Other Programming Paradigms
13.1 EVENT-BASED PROGRAMMING
13.1.1 Event Model
13.1.2 Developing an Event-Based Program
13.2 AGENT-BASED PROGRAMMING
13.2.1 Components of an Agent-Based System
13.2.2 Agent Security
13.2.3 Fault Tolerance in Multi-Agent Systems
13.3 HIGH PRODUCTIVITY MASSIVE PARALLEL PROGRAMMING
13.3.1 Partitioned Global Address Space
13.3.2 Constructs for High-Productivity Computing
13.4 SYNCHRONOUS LANGUAGES
13.4.1 Synchronous Constructs in Estrel
13.5 SUMMARY
13.6 ASSESSMENT
13.6.1 Concepts and Definitions
13.6.2 Problem Solving
13.6.3 Extended Response
FURTHER READING
Chapter 14 ■ Scripting Languages
14.1 COMPONENTS OF SCRIPTING LANGUAGES
14.1.1 Shell-Based Programming
14.1.2 Data-Driven Programming
14.1.3 Command Scripts
14.1.4 Text and String Processing
14.2 ABSTRACTIONS IN SCRIPTING LANGUAGES
14.2.1 Control and Data Abstractions
14.2.2 Shell Variables
14.2.3 Type Conversions
14.2.4 Regular Expressions and Pattern Matching
14.2.5 Programming Example
14.3 CASE STUDY
14.3.1 Abstractions and Programming in Perl
14.3.2 Abstractions in PHP
14.3.3 Abstractions and Programming in Python
14.3.4 Script Programming in Prolog
14.3.5 Script Programming in Ruby
14.3.6 Other Scripting Languages
14.4 SUMMARY
14.5 ASSESSMENT
14.5.1 Concepts and Definitions
14.5.2 Problem Solving
14.5.3 Extended Response
FURTHER READING
Chapter 15 ■ Conclusion and Future of Programming Languages
15.1 EVOLUTION OF PROGRAMMING PARADIGMS AND
LANGUAGES
15.2 EVOLUTION OF IMPLEMENTATION MODELS AND
COMPILERS
15.3 CONSTRUCT DESIGN AND COMPREHENSION
15.4 FUTURE DEVELOPMENT OF PROGRAMMING LANGUAGES
FURTHER READING

9781466565142 1466565144


Programming Languages (Electronic computers)
Computer Programming
Computer Programming.
Programming Languages (Electronic computers)
Programmierparadigma.
Programmiersprache.

005.1 / BAN/I