Introduction to programming languages/ Arvind Kumar Bansal

By: Bansal, Arvind KumarMaterial type: TextTextPublication details: Boca Raton: CRC press, 2014Description: xxxv, 588 p. : ill. ; 26 cmISBN: 9781466565142; 1466565144Subject(s): Programming Languages (Electronic computers) | Computer Programming | Computer Programming | Programming Languages (Electronic computers) | Programmierparadigma | ProgrammierspracheDDC classification: 005.1
Contents:
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
Tags from this library: No tags from this library for this title. Log in to add tags.
Star ratings
    Average rating: 0.0 (0 votes)
Holdings
Item type Current library Call number Status Date due Barcode Item holds
General Books General Books Central Library, Sikkim University
General Book Section
005.1 BAN/I (Browse shelf(Opens below)) Available P41463
Total holds: 0

"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

There are no comments on this title.

to post a comment.
SIKKIM UNIVERSITY
University Portal | Contact Librarian | Library Portal

Powered by Koha