Skip to content

Concepts of Programming Languages

Best in textbook rentals since 2012!

ISBN-10: 0131395319

ISBN-13: 9780131395312

Edition: 10th 2013 (Revised)

Authors: Robert W. Sebesta

List price: $163.40
Blue ribbon 30 day, 100% satisfaction guarantee!
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

For undergraduate students in Computer Science and Computer Programming courses.Now in its Tenth Edition, Concepts of Programming Languages introduces students to the main constructs of contemporary programming languages and provides the tools needed to critically evaluate existing and future programming languages. Readers gain a solid foundation for understanding the fundamental concepts of programming languages through the author's presentation of design issues for various language constructs, the examination of the design choices for these constructs in some of the most common languages, and critical comparison of the design alternatives. In addition, Sebesta strives to prepare the…    
Customers also bought

Book details

List price: $163.40
Edition: 10th
Copyright year: 2013
Publisher: Addison Wesley
Publication date: 1/6/2012
Binding: Hardcover
Pages: 816
Size: 7.50" wide x 9.25" long x 1.25" tall
Weight: 2.684

Dr. Robert W. Sebesta is an Associate Professor Emeritus of computer science at the University of Colorado at Colorado Springs. He received his PhD in computer science from Pennsylvania State University. His professional interests are the design and evaluation of programming languages, compiler design, and software-testing methods and tools. He is the author of Concepts of Programming Languages 9e.

Preliminaries
Reasons for Studying Concepts of Programming Languages
Programming Domains
Language Evaluation Criteria
Influences on Language Design
Language Categories
Language Design Trade-Offs
Implementation Methods
Programming Environments
Summary
Review Questions
Problem Set
Evolution of the Major Programming Languages
Zuse's Plankalk�l
Pseudocodes
The IBM 704 and Fortran
Functional Programming: LISP
The First Step Toward Sophistication: ALGOL 60
Computerizing Business Records: COBOL
The Beginnings of Timesharing: BASIC
interview: Alan Cooper-User Design and Language Design
Everything for Everybody: PL/I
Two Early Dynamic Languages: APL and SNOBOL
The Beginnings of Data Abstraction: SIMULA 67
Orthogonal Design: ALGOL 68
Some Early Descendants of the ALGOLs
Programming Based on Logic: Prolog
History's Largest Design Effort: Ada
Object-Oriented Programming: Smalltalk
Combining Imperative and Object-Oriented Features: C++
An Imperative-Based Object-Oriented Language: Java
Scripting Languages
The Flagship .NET Language: C#
Markup/Programming Hybrid Languages
Summary
Bibliographic Notes
Review Questions
Problem Set
Programming Exercises
Describing Syntax and Semantics
Introduction
The General Problem of Describing Syntax
Formal Methods of Describing Syntax
Attribute Grammars
History Note
Describing the Meanings of Programs: Dynamic Semantics
History Note
Summary
Bibliographic Notes
Review Questions
Problem Set
Lexical and Syntax Analysis
Introduction
Lexical Analysis
The Parsing Problem
Recursive-Descent Parsing
Bottom-Up Parsing
Summary
Review Questions
Problem Set
Programming Exercises
Names, Bindings, and Scopes
Introduction
Names
History Note
Variables
The Concept of Binding
Scope
Scope and Lifetime
Referencing Environments
Named Constants
Summary
Review Questions
Problem Set
Programming Exercises
Data Types
Introduction
Primitive Data Types
Character String Types
History Note
User-Defined Ordinal Types
Array Types
History Note
History Note
Associative Arrays
interview: Roberto Ierusalimschy-Lua
Record Types
Tuple Types
List Types
Union Types
Pointer and Reference Types
History Note
Type Checking
Strong Typing
Type Equivalence
Theory and Data Types
Summary
Bibliographic Notes
Review Questions
Problem Set
Programming Exercises
Expressions and Assignment Statements
Introduction
Arithmetic Expressions
Overloaded Operators
Type Conversions
History Note
Relational and Boolean Expressions
History Note
Short-Circuit Evaluation
Assignment Statements
History Note
Mixed-Mode Assignment
Summary
Review Questions
Problem Set
Programming Exercises
Statement-Level Control Structures
Introduction
Selection Statements
Iterative Statements
Unconditional Branching
History Note
Guarded Commands
Conclusions
Summary
Review Questions
Problem Set
Programming Exercises
Subprograms
Introduction
Fundamentals of Subprograms
Design Issues for Subprograms
Local Referencing Environments
Parameter-Passing Methods
History Note
History Note
Parameters That Are Subprograms
Calling Subprograms Indirectly
History Note
Overloaded Subprograms
Generic Subprograms
Design Issues for Functions
User-Defined Overloaded Operators
Closures
Coroutines
Summary
Review Questions
Problem Set
Programming Exercises
Implementing Subprograms
The General Semantics of Calls and Returns
Implementing "Simple" Subprograms
Implementing Subprograms with Stack-Dynamic Local Variables
Nested Subprograms
Blocks
Implementing Dynamic Scoping
Summary
Review Questions
Problem Set
Programming Exercises
Abstract Data Types and Encapsulation Constructs
The Concept of Abstraction
Introduction to Data Abstraction
Design Issues for Abstract Data Types
Language Examples
interview: Bjarne Stroustrup-C++: Its Birth, Its Ubiquitousness, and Common Criticisms
Parameterized Abstract Data Types
Encapsulation Constructs
Naming Encapsulations
Summary
Review Questions
Problem Set
Programming Exercises
Support for Object-Oriented Programming
Introduction
Object-Oriented Programming
Design Issues for Object-Oriented Languages
Support for Object-Oriented Programming in Smalltalk
interview: Bjarne Stroustrup-On Paradigms and Better Programming
Support for Object-Oriented Programming in C++
Support for Object-Oriented Programming in Objective-C
Support for Object-Oriented Programming in Java
Support for Object-Oriented Programming in C#
Support for Object-Oriented Programming in Ada 95
Support for Object-Oriented Programming in Ruby
Implementation of Object-Oriented Constructs
Summary
Review Questions
Problem Set
Programming Exercises
Concurrency
Introduction
Introduction to Subprogram-Level Concurrency
Semaphores
Monitors
Message Passing
Ada Support for Concurrency
Java Threads
C# Threads
Concurrency in Functional Languages
Statement-Level Concurrency
Summary
Bibliographic Notes
Review Questions
Problem Set
Programming Exercises
Exception Handling and Event Handling
Introduction to Exception Handling
History Note
Exception Handling in Ada
Exception Handling in C++
Exception Handling in Java
Introduction to Event Handling
Event Handling with Java
Event Handling in C#
Summary
Bibliographic Notes
Review Questions
Problem Set
Programming Exercises
Functional Programming Languages
Introduction
Mathematical Functions
Fundamentals of Functional Programming Languages
The First Functional Programming Language: LISP
An Introduction to Scheme
Common LISP
ML
Haskell
F#
Support for Functional Programming in Primarily Imperative Languages
A Comparison of Functional and Imperative Languages
Summary
Bibliographic Notes
Review Questions
Problem Set
Programming Exercises
Logic Programming Languages
Introduction
A Brief Introduction to Predicate Calculus
Predicate Calculus and Proving Theorems
An Overview of Logic Programming
The Origins of Prolog
The Basic Elements of Prolog
Deficiencies of Prolog
Applications of Logic Programming
Summary
Bibliographic Notes
Review Questions
Problem Set
Programming Exercises