1st Edition

Introduction to Programming Languages

By Arvind Kumar Bansal Copyright 2014
624 Pages 157 B/W Illustrations
by Chapman & Hall

624 Pages
by Chapman & Hall

624 Pages
by Chapman & Hall

In programming courses, using the different syntax of multiple languages, such as C++, Java, PHP, and Python, for the same abstraction often confuses students new to computer science. Introduction to Programming Languages separates programming language concepts from the restraints of multiple language syntax by discussing the concepts at an abstract level. Designed for a one-semester... Read more

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

A Summary, Assessment, and Further Reading appear at the end of each chapter.

Biography

Arvind Bansal is a professor of computer science at Kent State University. A member of IEEE and ACM, he is an area editor of Tools with Artificial Intelligence . His research interests include the areas of concurrent logic programming, fault-tolerant agent-based systems, knowledge bases, program analysis, XML-based multimedia languages and systems, bioinformatics, biological computing, and proteomics. He received a PhD in computer science from Case Western Reserve University.

"… a great introductory text, providing essential knowledge in the field and enabling students to place in the appropriate context the programming concepts they learned in their introductory courses. … The author has cleverly placed an introduction to data structures commonly used by programming languages in the second chapter, minimizing prerequisites and enabling the book’s usage at the sophomore level. Theory has been kept to levels suitable for a general undergraduate population and is supported by a wealth of concise, well-illustrated examples. … Recommended."
CHOICE, August 2014