程序设计语言:概念和结构 英文版

程序设计语言:概念和结构 英文版
作 者: Ravi Sethi
出版社: 机械工业出版社
丛编项: 经典原版书库
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 程序理论
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《程序设计语言:概念和结构 英文版》作者简介

内容简介

暂缺《程序设计语言:概念和结构 英文版》简介

图书目录

1 INTRODUCTION

1 The Role of Programming Languages

1.1 Toward Higher-Level Languages

1.2 Problems of Scale

1.3 Programming Paradigms

1.4 Language Implementation: Bridging the Gap

EXERCISES

BIBLIOGRAPHIC NOTES

2 Language Description: Syntactic Structure

2.1 Expression Notations

2.2 Abstract Syntax Trees

2.5 Lexical Syntax

2.4 Context-Free Grammars

2.5 Grammars for Expressions

2.6 Variants of Grammars

EXERCISES

BIBLIOGRAPHIG NOTES

II IMPERATIVE PROGRAMMING

3 Statements: Structured Programming

3.1 The Need for Structured Programming

3.2 Syntax-Directed Control Flow

3.3 Design Considerations: Syntax

3.4 Handling Special Cases in Loops

S.5 Programming with Invariants

3.6 Proof Rules for Panial Correctness

3.7 Control flow in C

EXERCISES

BIBLIOGRAPHIC NOTES

4 Types: Data Representation

4.1 The Role of Types

4.2 Basic Types

4.3 Arrays: Sequences of Elements

4.4 Records: Named Fields

4.5 Unions and Variant Records

4.6 Sets

4.7 Pointers: ERiciency and Dynamic Allocation

4.e Two String Tables

4.9 Types and Error Checking

EXERCISES

BIBLIOGRAPHIC NOTES

5 Procedure Activations

5.1 Introduction to Procedures

5.2 Parameter-Passing Methods

5.3 Scope Rules for Names

5.4 Nested Scopes in the Source Text

5.5 Activation Records

5.8 Lexical Scope: Procedures as in C

5.7 Lexical Scope: Nested Procedures and Pascal

EXERCISES

BIBLIOGRAPHIC NOTES

III OBJECT-ORIENTED PROGRAMMING

6 Groupings of Data and Operations

6.1 Constructs for Program Structuring

6.2 Information Hiding

6.3 Program Design with Modules

6.4 Modules and Defined Types

6.5 Class Declarations in C++

6.6 Dynamic Allocation in C++

6.7 Templates: Parameterized Types

6.8 Implementation of Objects in C++

EXERCISES

BIBLIOGRAPHIC NOTES

7 Object-Oriented Programming

7.1 What is an Object?

7.2 Object-Oriented Thinking

7.3 inheritance

7.4 Object-Oriented Programming in C++

7.5 An Extended C++ Example

7.6 Derived Classes and Information Hiding

7.7 Objects in Smalltalk

7.8 Smalltalk Objects have a Seff

EXERCISES

BIBLIOGRAPHIC NOTES

IV FUNCTIONAL PROGRAMMING

8 Elements of Functional Programming

8.1 A Little Language of Expressions

8.2 Types: Values and Operations

B.3 Function Declarations

8.4 Approaches to Expression Evaluation

8.5 Lexical Scope

B.6 Type Checking

EXERGISES

BIBLIOGRAPHIC NOTES

9 Functional Programming in a Typed Language

9.1 Exploring a List

9.2 Function Declaration by Cases

9.3 Functions as First-Class Values

9.4 ML: ImplicitTypes

9.5 DataTypes

9.6 Exception Handling in ML

9.7 Little Quilt in Standard ML

EXERCISES

BIBLIOGRAPHIC NOTES

10 Functional Programming with Lists

10.1 Scheme, a Dialect of Lisp

10.2 The Structure of Lists

10.3 List Manipulation

10.4 A Motivating Example: DiHerentiation

10.5 Simplification of Expressions

10.6 Storage Allocation for Lists

EXERCISES

BIBLIOGRAPHIC NOTES

V OTHER PARADIGMS

11 Logic Programming

11.1 Computing with Relations

11.2 Introduction to Proiog

11.3 Data Structures in Prolog

11.4 Programming Techniques

11.5 Control in Prolog

11.e Cuts

EXERCISES

BIBLIOGRAPHIC NOTES

12 An Introduction to Concurrent Programming

12.1 Parallelism in Hardware

12.2 Streams: Implicit Synchronization

12.3 Concurrency as Interleaving

12.4 Liveness Propenies

12.5 Safe Access to Shared Data

12.6 Concurrency in Ada

12.7 Synchronized Access to Shared Variables

EXERCISES

BIBLIOGRAPHIC NOTES

VI LANGUAGE DESCRIPTION

13 Semantic Methods

13.1 Synthesized Attributes

13.2 Attribute Grammars

13.3 Natural Semantics

13.4 Denotational Semantics

13.5 A Calculator in Scheme

13.6 Lexically Scoped Lambda Expressions

13.7 An Interpreter

13.8 An Extension: Recursive Functions

EXERCISES

BIBLIOGRAPHIC NOTES

14 Static Types and the Lambda Calculus

14.1 Equality of Pure Lambda Terms

14.2 Substitution Revisited

14.3 Computation with Pure Lambda Terms

14.4 Programming Constructs as Lambda-Terms

14.5 The Typed Lambda Calculus

14.6 Polymorphic Types

EXERCISES

BIBLIOGRAPHIC NOTES

15 A Look at Some Languages

15.1 Pascal: A Teaching Language

15.2 C: Systems Programming

15.3 C++: A Range of Programming Styles

15.4 Smalltalk, the Language

15.5 Standard ML

15.6 Scheme, a Dialect of Lisp

15.7 Prolog

Bibliography

Credits

Index