Concepts of Programming Languages, 5/e (精裝)
暫譯: 程式語言概念,第5版 (精裝)

Robert W. Sebesta, Robert W. Sebesta

  • 出版商: Addison Wesley
  • 出版日期: 2001-07-31
  • 售價: $1,009
  • 語言: 英文
  • 頁數: 720
  • 裝訂: Hardcover
  • ISBN: 0201752956
  • ISBN-13: 9780201752953
  • 無法訂購

買這商品的人也買了...

商品描述


Description

The fifth edition of Concepts of Programming Languages by Robert Sebesta continues the approach that has made it the undisputed market leader. It describes fundamental concepts of programming languages by presenting design issues of the various language constructs, examining the design choices for these constructs in a few common languages, and critically comparing the design alternatives. This is an ideal text for students taking a comparative programming languages course: it allows those with the ability to program to learn how to choose appropriate languages for certain tasks, increase their abilities to learn new languages, and understand the significance of implementation. This new edition is updated to include a new chapter covering parsing, new material on JavaScript, and updated material on Java1.3.

Back to Top


Appropriate Courses

Comparative Programming Languages.

Back to Top


Features

  • NEW! Expands the treatment of parsing from one section to one chapter (Ch. 3).
  • NEW! Includes additional treatment of scripting languages.
  • NEW! Offers updated coverage of Java 1.3 throughout.
  • NEW!Added information on scripting languages.
  • Illustrates various language constructs and design alternatives through Java, JavaScript, C++, C, Ada, Fortran, Perl and others.
Back to Top


Table Of Contents

1. 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.

2. Evolution of the Major Programming Languages.
Zuse's Plankalkül.
Minimal Hardware Programming: 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.
Everything for Everybody: PL/I.
Two Early Dynamic Languages: APL and SNOBOL.
The Beginnings of Data Abstraction: SIMULA 67.
Orthogonal Design: ALGOL 68.
Some Important 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++.
Programming the World Wide Web: Java.

3. Describing Syntax and Semantics.
Introduction.
The General Problem of Describing Syntax.
Formal Methods of Describing Syntax.
Attribute Grammars.
Describing the Meanings of Programs: Dynamic Semantics.

4. Lexical and Syntax Analysis.
Introduction.
Lexical Analysis.
The Parsing Problem.
Recursive-Descent Parsing.
Bottom-Up Parsing.

5. Names, Bindings, Type Checking, and Scopes.
Introduction.
Names.
Variables.
The Concept of Binding.
Type Checking.
Strong Typing.
Type Compatibility.
Scope.
Scope and Lifetime.
Referencing Environments.
Named Constants.
Variable Initialization.

6. Data Types.
Introduction.
Primitive Data Types.
Character String Types.
User-Defined Ordinal Types.
Array Types.
Associative Arrays.
Record Types.
Union Types.
Set Types.
Pointer Types.

7. Expressions and Assignment Statements.
Introduction.
Arithmetic Expressions.
Overloaded Operators.
Type Conversions.
Relational and Boolean Expressions.
Short-Circuit Evaluation.
Assignment Statements.
Mixed-Mode Assignment.

8. Statement-Level Control Structures.
Introduction.
Compound Statements.
Selection Statements.
Iterative Statements.
Unconditional Branching.
Guarded Commands.
Conclusions.

9. Subprograms.
Introduction.
Fundamentals of Subprograms.
Design Issues for Subprograms.
Local Referencing Environments.
Parameter-Passing Methods.
Parameters That Are Subprogram Names.
Overloaded Subprograms.
Generic Subprograms.
Separate and Independent Compilation.
Design Issues for Functions.
Accessing Nonlocal Environments.
User-Defined Overloaded Operators.
Coroutines.

10. Implementing Subprograms.
The General Semantics of Calls and Returns.
Implementing FORTRAN 77 Subprograms.
Implementing Subprograms in ALGOL-Like Languages.
Implementing Dynamic Scoping.
Implementing Parameters That Are Subprogram Names.

11. Abstract Data Types.
The Concept of Abstraction.
Encapsulation.
Introduction to Data Abstraction.
Design Issues.
Language Examples.
Parameterized Abstract Data Types.

12. Support for Object-Oriented Programming.
Introduction.
Object-Oriented Programming.
Design Issues for Object-Oriented Languages.
Overview of Smalltalk.
Introduction to the Smalltalk Language.
Smalltalk Example Programs.
Large-Scale Features of Smalltalk.
Evaluation of Smalltalk.
Support for Object-Oriented Programming in C++.
Support for Object-Oriented Programming in Java.
Support for Object-Oriented Programming in Ada 95.
Support for Object-Oriented Programming in Eiffel.
The Object Model of JavaScript.
Implementation of Object-Oriented Constructs.

13. Concurrency.
Introduction.
Introduction to Subprogram-Level Concurrency.
Semaphores.
Monitors.
Message Passing.
Concurrency in Ada 95.
Java Threads.
Statement-Level Concurrency.

14. Exception Handling.
Introduction to Exception Handling.
Exception Handling in PL/I.
Exception Handling in Ada.
Exception Handling in C++.
Exception Handling in Java.

15. 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.
Applications of Functional Languages.
A Comparison of Functional and Imperative Languages.

16. 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.
Conclusions.



Back to Top

商品描述(中文翻譯)

描述
《程式語言概念》第五版由 Robert Sebesta 所著,延續了使其成為無可爭議的市場領導者的方法。它通過呈現各種語言結構的設計問題,檢視這些結構在幾種常見語言中的設計選擇,並批判性地比較設計替代方案,來描述程式語言的基本概念。這本書是修習比較程式語言課程的學生的理想教材:它使具備程式設計能力的人能夠學會如何為特定任務選擇適當的語言,提升學習新語言的能力,並理解實作的重要性。這一新版更新了內容,包括一章關於解析的新章節、新的 JavaScript 內容,以及更新的 Java 1.3 相關資料。

適合的課程
比較程式語言。

特點
- **新!** 將解析的處理從一個部分擴展到一章(第 3 章)。
- **新!** 包含對腳本語言的額外處理。
- **新!** 全面更新 Java 1.3 的內容。
- **新!** 增加了有關腳本語言的信息。
- 通過 Java、JavaScript、C++、C、Ada、Fortran、Perl 等語言說明各種語言結構和設計替代方案。

目錄
**1. 前言。**
學習程式語言概念的理由。
程式設計領域。
語言評估標準。
對語言設計的影響。
語言類別。
語言設計的取捨。
實作方法。
程式設計環境。

**2. 主要程式語言的演變。**
Zuse 的 Plankalkül。
最小硬體程式設計:偽代碼。
IBM 704 和 FORTRAN。
函數式程式設計:LISP。
邁向複雜性的第一步:ALGOL 60。
電腦化商業記錄:COBOL。
時間共享的開始:BASIC。
人人皆可使用:PL/I。
兩種早期動態語言:APL 和 SNOBOL。
數據抽象的開始:SIMULA 67。
正交設計:ALGOL 68。
ALGOL 的一些重要後裔。
基於邏輯的程式設計:Prolog。
歷史上最大的設計努力:Ada。
物件導向程式設計:Smalltalk。
結合命令式和物件導向特徵:C++。
程式設計全球資訊網:Java。

**3. 描述語法和語義。**
介紹。
描述語法的一般問題。
描述語法的形式方法。
屬性文法。
描述程式的意義:動態語義。

**4. 詞法和語法分析。**
介紹。
詞法分析。
解析問題。
遞歸下降解析。
自下而上的解析。

**5. 名稱、綁定、類型檢查和範圍。**
介紹。
名稱。
變數。
綁定的概念。
類型檢查。
強類型。
類型相容性。
範圍。
範圍和生命週期。
引用環境。
命名常數。
變數初始化。

**6. 數據類型。**
介紹。
原始數據類型。
字元串類型。
用戶定義的序數類型。
數組類型。
關聯數組。
記錄類型。
聯合類型。
集合類型。
指標類型。

**7. 表達式和賦值語句。**
介紹。
算術表達式。
重載運算符。
類型轉換。
關係和布林表達式。
短路評估。
賦值語句。
混合模式賦值。

**8. 語句級控制結構。**
介紹。
複合語句。
選擇語句。
迭代語句。
無條件分支。
受保護的命令。
結論。

**9. 子程序。**
介紹。
子程序的基本原則。
子程序的設計問題。
局部引用環境。
參數傳遞方法。
作為子程序名稱的參數。
重載子程序。
通用子程序。
獨立編譯。
函數的設計問題。
訪問非局部環境。
用戶定義的重載運算符。
協程。

**10. 實作子程序。**
調用和返回的一般語義。
實作 FORTRAN 77 子程序。
在類 ALGOL 語言中實作子程序。
實作動態範圍。
實作作為子程序名稱的參數。

**11. 抽象數據類型。**
抽象的概念。
封裝。
數據抽象介紹。
設計問題。
語言範例。
參數化的抽象數據類型。

**12. 對物件導向程式設計的支持。**
介紹。
物件導向程式設計。
物件導向語言的設計問題。
Smalltalk 概述。
Smalltalk 語言介紹。
Smalltalk 範例程式。
Smalltalk 的大規模特徵。
Smalltalk 的評估。
C++ 中對物件導向程式設計的支持。
Java 中對物件導向程式設計的支持。
Ada 95 中對物件導向程式設計的支持。
Eiffel 中對物件導向程式設計的支持。
JavaScript 的物件模型。
物件導向結構的實作。

**13. 並發性。**
介紹。
子程序級別的並發性介紹。
信號量。
監視器。
消息傳遞。
Ada 95 中的並發性。
Java 線程。
語句級別的並發性。

**14. 異常處理。**
異常處理介紹。
PL/I 中的異常處理。
Ada 中的異常處理。
C++ 中的異常處理。
Java 中的異常處理。

**15. 函數式程式語言。**
介紹。
數學函數。
函數式程式語言的基本原則。
第一個函數式程式語言:LISP。
Scheme 介紹。
COMMON LISP。
ML。
Haskell。
函數語言的應用。
函數式語言與命令式語言的比較。

**16. 邏輯程式語言。**
介紹。
謂詞演算簡介。
謂詞演算與定理證明。
邏輯程式設計概述。
Prolog 的起源。
Prolog 的基本元素。
Prolog 的缺陷。
邏輯程式設計的應用。
結論。