Programming languages : concepts and constructs
著者
書誌事項
Programming languages : concepts and constructs
Addison-Wesley, c1996
2nd ed
大学図書館所蔵 全26件
  青森
  岩手
  宮城
  秋田
  山形
  福島
  茨城
  栃木
  群馬
  埼玉
  千葉
  東京
  神奈川
  新潟
  富山
  石川
  福井
  山梨
  長野
  岐阜
  静岡
  愛知
  三重
  滋賀
  京都
  大阪
  兵庫
  奈良
  和歌山
  鳥取
  島根
  岡山
  広島
  山口
  徳島
  香川
  愛媛
  高知
  福岡
  佐賀
  長崎
  熊本
  大分
  宮崎
  鹿児島
  沖縄
  韓国
  中国
  タイ
  イギリス
  ドイツ
  スイス
  フランス
  ベルギー
  オランダ
  スウェーデン
  ノルウェー
  アメリカ
注記
Includes bibliographical references (p. 613-625) and index
内容説明・目次
内容説明
Programming Languages: Concepts and Constructs, Second Edition retains the "character" of the original, emphasizing concepts and how they work together. This classic book has been thoroughly revised to provide readable coverage of the major programming paradigms. Dr. Sethi's treatment of the core concepts of imperative programming in languages like Pascal and C flows smoothly into object-oriented programming in C++ and Smalltalk. The charm of functional languages is illustrated by programs in standard ML and the Scheme dialect of Lisp. Logic programming is introduced using Prolog. Novices, who have been introduced to programming in some language, will learn from this book how related concepts work together while designers and implementers willp be exposed to the major programming paradigms. Example programs from the book are available as source code. These are available by anonymous ftp at ftp://ftp.aw.com/cseng/authors/sethi/pl2e. 0201590654B04062001
目次
I. INTRODUCTION.
1. The Role of Programming Languages.
Toward Higher-Level Languages.
Problems of Scale.
Programming Paradigms.
Language Implementation: Bridging the Gap.
Exercises.
Bibliographic Notes.
2. Language Description: Syntactic Structure.
Expression Notations.
Abstract Syntax Trees.
Lexical Syntax.
Context-Free Grammars.
Grammars for Expressions.
Variants of Grammars.
Exercises.
Bibliographic Notes.
II. IMPERATIVE PROGRAMMING.
3. Statements: Structured Programming.
The Need for Structured Programming.
Syntax-Directed Control Flow.
Design Considerations: Syntax.
Handling Special Cases in Loops.
Programming with Invariants.
Proof Rules for Partial Correctness.
Control flow in C.
Exercises.
Bibliographic Notes.
4. Types: Data Representation.
The Role of Types.
Basic Types.
Arrays: Sequences of Elements.
Records: Named Fields.
Unions and Variant Records.
Sets.
Pointers: Efficiency and Dynamic Allocation.
Two String Tables.
Types and Error Checking.
Exercises.
Bibliographic Notes.
5. Procedure Activations.
Introduction to Procedures.
Parameter-Passing Methods.
Scope Rules for Names.
Nested Scopes in the Source Text.
Activation Records.
Lexical Scope: Procedures as in C.
Lexical Scope: Nested Procedures and Pascal.
Exercises.
Bibliographic Notes.
III. OBJECT-ORIENTED PROGRAMMING.
6. Groupings of Data and Operations.
Constructs for Program Structuring.
Information Hiding.
Program Design with Modules.
Modules and Defined Types.
Class Declarations in C++.
Dynamic Allocation in C++.
Templates: Parameterized Types.
Implementation of Objects in C++.
Exercises.
Bibliographic Notes.
7. Object-Oriented Programming.
What is an Object?
Object-Oriented Thinking.
Inheritance.
Object-Oriented Programming in C++.
An Extended C++ Example.
Derived Classes and Information Hiding.
Objects in Smalltalk.
Smalltalk Objects have a Self.
Exercises.
Bibliographic Notes.
IV. FUNCTIONAL PROGRAMMING.
8. Elements of Functional Programming.
A Little Language of Expressions.
Types: Values and Operations.
Function Declarations.
Approaches to Expression Evaluation.
Lexical Scope.
Type Checking.
Exercises.
Bibliographic Notes.
9. Functional Programming in a Typed Language.
Exploring a List.
Function Declaration by Cases.
Functions as First-Class Values.
ML: Implicit Types.
Data Types.
Exception Handling in ML.
Little Quilt in Standard ML.
Exercises.
Bibliographic Notes.
10. Functional Programming with Lists.
Scheme, a Dialect of Lisp.
The Structure of Lists.
List Manipulation.
A Motivating Example: Differentiation.
Simplification of Expressions.
Storage Allocation for Lists.
Exercises.
Bibliographic Notes.
V. OTHER PARADIGMS.
11. Logic Programming.
Computing with Relations.
Introduction to Prolog.
Data Structures in Prolog.
Programming Techniques.
Control in Prolog.
Cuts.
Exercises.
Bibliographic Notes.
12. An Introduction to Concurrent Programming.
Parallelism in Hardware.
Streams: Implicit Synchronization.
Concurrency as Interleaving.
Liveness Properties.
Safe Access to Shared Data.
Concurrency in Ada.
Synchronized Access to Shared Variables.
Exercises.
Bibliographic Notes.
VI. LANGUAGE DESCRIPTION.
13. Semantic Methods.
Synthesized Attributes.
Attribute Grammars.
Natural Semantics.
Denotational Semantics.
A Calculator in Scheme.
Lexically Scoped Lambda Expressions.
An Interpreter.
An Extension: Recursive Functions.
Exercises.
Bibliographic Notes.
14. Static Types and the Lambda Calculus.
Equality of Pure Lambda Terms.
Substitution Revisited.
Computation with Pure Lambda Terms.
Programming Constructs as Lambda-Terms.
The Typed Lambda Calculus.
Polymorphic Types.
Exercises.
Bibliographic Notes.
15. A Look at Some Languages.
Pascal: A Teaching Language.
C: Systems Programming.
C++: A Range of Programming Styles.
Smalltalk, the Language.
Standard ML.
Scheme, a Dialect of Lisp.
Prolog.
Bibliography.
Credits.
Index. 0201590654T04062001
「Nielsen BookData」 より