Introduction to Programming Languages

Introduction to Programming Languages

Published:
Content:
Author(s):
Free Standard Shipping

Purchasing Options

Paperback
$79.95
ISBN 9781466565142
Cat# K16083
Add to cart
eBook
ISBN 9781466565166
Cat# KE20913
 

Features

  • Introduces programming language concepts at an abstract level, freeing them from the restraints of multiple language syntax
  • Illustrates the concepts using many examples from modern languages, such as Java, C++, C#, Ada 2012, Ruby, Perl, Python, Scala, and Haskell
  • Describes implementation models of various paradigms, including imperative, functional, logic, and object-oriented programming
  • Covers up-to-date topics in concurrent programming, web-based programming, distributed computing, and other areas highly relevant in today’s computing world
  • Gives insight into low-level implementation behavior

Solutions manual, figure slides, and PowerPoint slides available upon qualifying course adoption

Summary

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.

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

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

Author Bio(s)

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.

Textbooks
Other CRC Press Sites
Featured Authors
STAY CONNECTED
Facebook Page for CRC Press Twitter Page for CRC Press You Tube Channel for CRC Press LinkedIn Page for CRC Press Google Plus Page for CRC Press
Sign Up for Email Alerts
© 2014 Taylor & Francis Group, LLC. All Rights Reserved. Privacy Policy | Cookie Use | Shipping Policy | Contact Us