Programming Language Pragmatics, 2/e
Michael L. Scott
- 出版商: Morgan Kaufmann
- 出版日期: 2005-11-21
- 售價: $1,274
- 語言: 英文
- 頁數: 912
- 裝訂: Paperback
- ISBN: 0126339511
- ISBN-13: 9780126339512
已過版
買這商品的人也買了...
-
$980Advanced Compiler Design and Implementation
-
$2,610$2,480 -
$590$466 -
$480$379 -
$1,050$1,029 -
$2,340$2,223 -
$149$134 -
$199$179 -
$490$382 -
$150$119 -
$860$679 -
$880$581 -
$2,690$2,556 -
$880$695 -
$580$493 -
$390$332 -
$199Communication Skills Handbook (Paperback)
-
$780$702 -
$680$578 -
$650$507 -
$680$578 -
$750$593 -
$680$537 -
$720$569 -
$1,200$948
相關主題
商品描述
Description
Thoroughly updated to reflect the most current developments in language design and implementation, the second edition
Addresses key developments in programming language design:
+ Finalized C99 standard
+ Java 5
+ C# 2.0
+ Java concurrency package (JSR 166) and comparable mechanisms in C#
+ Java and C# generics
Introduces and discusses scripting languages throughout the book and in an entire new chapter that covers:
+ Application domains: shell languages, text processing and report generation, mathematics and statistics, “glue” languages and general purpose scripting, extension languages, scripting the World Wide Web
+ Design concepts: names and scopes, string and pattern manipulation, high level data types, object orientation
+ Major languages: Perl, PHP, Tcl/Tk, Python, Ruby, JavaScript, XLST
Updates many sections and topics:
+ iterators
+ exceptions
+ polymorphism
+ templates/generics
+ scope rules and declaration ordering
+ separate compilation
+ garbage collection
+ threads and synchronization
New pedagogical features
Design & Implementation boxes
+ Highlight the interplay between language design and language implementation
Test Your Understanding review questions
+ Help students assess their understanding of key points of a section
In More Depth CD supplements
+ Present more advanced or peripheral material for students who would like to extend their knowledge
Explorations
+ Provide students with additional exercises that are open-ended, research-type activities
New reference features
+ Over 900 numbered and titled examples help the student to quickly cross-reference and access content for initial study and later review.
+ Indices (in the printed text) for both the Design and Implementation boxes and the numbered examples.
+ CD search engine for both the printed text and the supplemental sections.
+ Live links on the CD to Web-based language tutorials, reference manuals, and compilers and interpreters.
On the CD
+ In More Depth sections and sub-sections that are introduced in the book and presented on the CD
+ In More Depth Exercises and Explorations for students wanting additional challenges
+ Links to Web-based language reference manuals and tutorials
+ Links to Web-based compilers and interpreters
+ Text files containing the code fragments featured as examples in the book
+ Search engine to search both the main text and the CD-only content
Instructor support
+ Password-protected site for adopters who request the password from a sales representative
+ Solutions to most exercises
+ Figures from the book in several formats
+ Lecture slides prepared by other instructors
Table of Contents
Part I Foundations
1. Introduction
1.1 The Art of Language Design
1.2 The Programming Language Spectrum
1.3 Why Study Programming Languages?
1.4 Compilation and Interpretation
1.5 Programming Environments
1.6 An Overview of Compilation
2. Programming Language Syntax
2.1 Specifying Syntax
2.2 Scanning
2.3 Parsing
2.4 Theoretical Foundations
3. Names, Scopes, and Bindings
3.1 The Notion of Binding Time
3.2 Object Lifetime and Storage Management
3.3 Scope Rules
3.4 Implementing Scope
3.5 The Binding of Referencing Environments
3.6 Binding Within a Scope
3.7 Separate Compilation
4. Semantic Analysis
4.1 The Role of the Semantic Analyzer
4.2 Attribute Grammars
4.3 Evaluating Attributes
4.4 Action Routines
4.5 Space Management for Attributes
4.6 Decorating a Syntax Tree
5. Target Machine Architecture
5.1 The Memory Hierarchy
5.2 Data Representation
5.3 Instruction Set Architecture
5.4 Architecture and Implementation
5.5 Compiling for Modern Processors
Part II Core Issues in Language Design
6. Control Flow
6.1 Expression Evaluation
6.2 Structured and Unstructured Flow
6.3 Sequencing
6.4 Selection
6.5 Iteration
6.6 Recursion
6.7 Nondeterminacy
7. Data Types
7.1 Type Systems
7.2 Type Checking
7.3 Records (Structures) and Variants (Unions)
7.4 Arrays
7.5 Strings
7.6 Sets
7.7 Pointers and Recursive Types
7.8 Lists
7.9 Files and Input/Output
7.10 Equality Testing and Assignment
8. Subroutines and Control Abstraction
8.1 Review of Stack Layout
8.2 Calling Sequences
8.3 Parameter Passing
8.4 Generic Subroutines and Modules
8.5 Exception Handling
8.6 Coroutines
9. Data Abstraction and Object Orientation
9.1 Object-Oriented Programming
9.2 Encapsulation and Inheritance
9.3 Initialization and Finalization
9.4 Dynamic Method Binding
9.5 Multiple Inheritance
9.6 Object-Oriented Programming Revisited
Part III Alternative Programming Models
10. Functional Languages
10.1 Historical Origins
10.2 Functional Programming Concepts
10.3 A Review/Overview of Scheme
10.4 Evaluation Order Revisited
10.5 Higher-Order Functions
10.6 Theoretical Foundations
10.7 Functional Programming in Perspective
11. Logic Languages
11.1 Logic Programming Concepts
11.2 Prolog
11.3 Theoretical Foundations
11.4 Logic Programming in Perspective
12. Concurrency
12.1 Background and Motivation
12.2 Concurrent Programming Fundamentals
12.3 Shared Memory
12.4 Message Passing
13. Scripting
13.1 What Is a Scripting Language?
13.2 Problem Domains
13.3 Scripting the World Wide Web
13.4 Innovative Features
Part IV A Closer Look at Implementation
14. Building a Runnable Program
14.1 Back-End Compiler Structure
14.2 Intermediate Forms
14.3 Code Generation
14.4 Address Space Organization
14.5 Assembly
14.6 Linking
14.7 Dynamic Linking
15. Code Improvement
15.1 Phases of Code Improvement
15.2 Peephole Optimization
15.3 Redundancy Elimination in Basic Blocks
15.4 Global Redundancy and Data Flow Analysis
15.5 Loop Improvement I
15.6 Instruction Scheduling
15.7 Loop Improvement II
15.8 Register Allocation
A. Programming Languages Mentioned
B. Language Design and Language Implementation
C. Numbered Examples
Bibliography
Index