eBook Ordering Options

Description

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 undergraduate course, this classroom-tested book teaches the principles of programming language design and implementation. It presents:

Common features of programming languages at an abstract level rather than a comparative level

The implementation model and behavior of programming paradigms at abstract levels so that students understand the power and limitations of programming paradigms

Language constructs at a paradigm level

A holistic view of programming language design and behavior

To make the book self-contained, the author introduces the necessary concepts of data structures and discrete structures from the perspective of programming language theory. The text covers classical topics, such as syntax and semantics, imperative programming, program structures, information exchange between subprograms, object-oriented programming, logic programming, and functional programming. It also explores newer topics, including dependency analysis, communicating sequential processes, concurrent programming constructs, web and multimedia programming, event-based programming, agent-based programming, synchronous languages, high-productivity programming on massive parallel computers, models for mobile computing, and much more. Along with problems and further reading in each chapter, the book includes in-depth examples and case studies using various languages that help students understand syntax in practical contexts.

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

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

Author Bio

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.

Related Subjects

Name: Introduction to Programming Languages (Paperback) – Chapman and Hall/CRC
Description: By Arvind Kumar Bansal. 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...
Categories: Programming & Programming Languages, Computation, Algorithms & Complexity