Programming Languages:Concepts and Concepts

副标题:无

作   者:(美)Ravi Sethi著

分类号:

ISBN:9787111095941

微信扫一扫,移动浏览光盘

简介

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

目录


I 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

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Programming Languages:Concepts and Concepts
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon