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,640$2,508 -
$590$466 -
$480$379 -
$1,050$1,029 -
$2,370$2,252 -
$149$127 -
$199$179 -
$490$382 -
$150$119 -
$860$679 -
$880$695 -
$2,720$2,584 -
$880$695 -
$580$493 -
$390$332 -
$199Communication Skills Handbook (Paperback)
-
$780$663 -
$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
商品描述(中文翻譯)
**描述**
第二版已全面更新,以反映語言設計和實現的最新發展。
- 涉及編程語言設計的關鍵發展:
+ 最終確定的 C99 標準
+ Java 5
+ C# 2.0
+ Java 並發包 (JSR 166) 及 C# 中的可比機制
+ Java 和 C# 的泛型
- 在整本書中以及一個全新的章節中介紹和討論腳本語言,涵蓋:
+ 應用領域:Shell 語言、文本處理和報告生成、數學和統計、“膠水”語言和通用腳本、擴展語言、網際網路腳本
+ 設計概念:名稱和範圍、字符串和模式操作、高級數據類型、面向對象
+ 主要語言:Perl、PHP、Tcl/Tk、Python、Ruby、JavaScript、XLST
- 更新許多部分和主題:
+ 迭代器
+ 異常
+ 多型
+ 模板/泛型
+ 範圍規則和聲明順序
+ 單獨編譯
+ 垃圾回收
+ 線程和同步
新的教學特徵
設計與實現框
+ 突出語言設計與語言實現之間的相互作用
測試你的理解回顧問題
+ 幫助學生評估他們對某一部分關鍵點的理解
深入了解 CD 補充材料
+ 提供更高級或周邊的材料,供希望擴展知識的學生
探索
+ 為學生提供額外的開放式練習和研究型活動
新的參考特徵
+ 超過 900 個編號和標題的示例幫助學生快速交叉參考和訪問內容以進行初步學習和後續回顧。
+ 印刷文本中的索引,涵蓋設計與實現框和編號示例。
+ CD 搜索引擎,用於印刷文本和補充部分。
+ CD 上的實時鏈接到基於網絡的語言教程、參考手冊、編譯器和解釋器。
在 CD 上
+ 在書中介紹並在 CD 上呈現的深入了解部分和子部分
+ 為希望獲得額外挑戰的學生提供的深入了解練習和探索
+ 鏈接到基於網絡的語言參考手冊和教程
+ 鏈接到基於網絡的編譯器和解釋器
+ 包含書中示例的代碼片段的文本文件
+ 搜索引擎,用於搜索主文本和僅限 CD 的內容
教師支持
+ 為要求密碼的採用者提供的密碼保護網站
+ 大多數練習的解答
+ 書中的圖形以多種格式提供
+ 其他教師準備的講義幻燈片
**目錄**
第一部分 基礎
1. 介紹
1.1 語言設計的藝術
1.2 編程語言光譜
1.3 為什麼學習編程語言?
1.4 編譯與解釋
1.5 編程環境
1.6 編譯概述
2. 編程語言語法
2.1 語法的指定
2.2 掃描
2.3 解析
2.4 理論基礎
3. 名稱、範圍和綁定
3.1 綁定時間的概念
3.2 對象生命週期和存儲管理
3.3 範圍規則
3.4 實現範圍
3.5 引用環境的綁定
3.6 範圍內的綁定
3.7 單獨編譯
4. 語義分析
4.1 語義分析器的角色
4.2 屬性文法
4.3 評估屬性
4.4 行動例程
4.5 屬性的空間管理
4.6 裝飾語法樹
5. 目標機器架構
5.1 記憶體層次結構
5.2 數據表示
5.3 指令集架構
5.4 架構與實現
5.5 為現代處理器編譯
第二部分 語言設計中的核心問題
6. 控制流
6.1 表達式評估
6.2 結構化和非結構化流
6.3 排序
6.4 選擇
6.5 迭代
6.6 遞歸
6.7 非確定性
7. 數據類型
7.1 類型系統
7.2 類型檢查
7.3 記錄(結構)和變體(聯合)
7.4 陣列
7.5 字符串
7.6 集合
7.7 指針和遞歸類型
7.8 列表
7.9 文件和輸入/輸出
7.10 相等測試和賦值
8. 子程序和控制抽象
8.1 堆疊佈局回顧
8.2 調用序列
8.3 參數傳遞
8.4 泛型子程序和模塊
8.5 異常處理
8.6 協程
9. 數據抽象和面向對象
9.1 面向對象編程
9.2 封裝和繼承
9.3 初始化和終結
9.4 動態方法綁定
9.5 多重繼承
9.6 再次回顧面向對象編程
第三部分 替代編程模型
10. 函數語言
10.1 歷史起源
10.2 函數編程概念
10.3 Scheme 的回顧/概述
10.4 評估順序再探
10.5 高階函數
10.6 理論基礎
10.7 函數編程的視角
11. 邏輯語言
11.1 邏輯編程概念
11.2 Prolog
11.3 理論基礎
11.4 邏輯編程的視角
12. 並發
12.1 背景和動機
12.2 並發編程基礎
12.3 共享記憶體
12.4 消息傳遞
13. 腳本
13.1 什麼是腳本語言?
13.2 問題領域
13.3 網際網路腳本
13.4 創新特徵
第四部分 實現的深入探討
14. 構建可執行程序
14.1 後端編譯器結構
14.2 中間形式
14.3 代碼生成
14.4 地址空間組織
14.5 組合
14.6 連結
14.7 動態連結
15. 代碼改進
15.1 代碼改進的階段
15.2 窺視優化
15.3 基本區塊中的冗餘消除
15.4 全局冗餘和數據流分析
15.5 循環改進 I
15.6 指令調度
15.7 循環改進 II
15.8 寄存器分配
附錄 A. 提到的編程語言
附錄 B. 語言設計與語言實現
附錄 C. 編號示例
參考文獻
索引