The Interpretation of Object-Oriented Programming Languages by Iain Craig.

I was extremely surprised to learn that this book was so well received; I was even more surprised when a second edition was proposed. I had realised that there was a need for a book such as this but had not thought that the need was as great; I really wrote the book for myself, in order better to or...

Full description

Saved in:
Bibliographic Details
Main Author: Craig, Iain (Author)
Corporate Author: SpringerLink (Online service)
Format: eBook
Language:English
Published: London : Springer London : Imprint: Springer, 2002.
Edition:2nd ed. 2002.
Series:Springer eBook Collection.
Subjects:
Online Access:Click to view e-book
Holy Cross Note:Loaded electronically.
Electronic access restricted to members of the Holy Cross Community.
Table of Contents:
  • 1. Introduction
  • 1.1 Introduction
  • 1.2 Essential Properties of Objects
  • 1.3 Objects and Messages
  • 1.4 Pure and Impure Languages
  • 1.5 Mixed-Paradigm Languages
  • 1.6 Organization of this Book
  • 2. Class Fundamentals
  • 2.1 Introduction
  • 2.2 Classes
  • 2.3 Instances
  • 2.4 Slots and Methods
  • 2.5 Slot Access
  • 2.6 Visibility and Accessibility
  • 2.7 Instance Creation
  • 2.8 Inheritance
  • 2.9 Abstract Classes
  • 2.10 Iterators
  • 2.11 Part Objects
  • 3. Prototype and Actor Languages
  • 3.1 Introduction
  • 3.2 Prototype Languages
  • 3.3 Methods in Prototype Languages
  • 3.4 Actor Languages
  • 4. Inheritance and Delegation
  • 4.1 Introduction
  • 4.2 Interpretations of Inheritance
  • 4.3 Inheritance as Subtyping
  • 4.4 Inheritance as Code Sharing
  • 4.5 Single Inheritance
  • 4.6 Calling More Abstract Methods
  • 4.7 Multiple Inheritance
  • 4.8 Multiple Inheritance Graph Shape
  • 4.9 Approaches to Multiple Inheritance
  • 4.10 Implemented Multiple Inheritance Techniques
  • 4.11 Mixin Classes
  • 4.12 Alternatives to Multiple Inheritance
  • 4.13 Delegation and Prototypes
  • 4.14 Aggregation
  • 5. Methods
  • 5.1 Introduction
  • 5.2 Methods and Objects
  • 5.3 Object Constructors and Methods
  • 5.4 Environments and Closures
  • 5.5 Methods and Inheritance
  • 5.6 Static and Dynamic Binding
  • 6. Types I: Types and Objects
  • 6.1 Introduction
  • 6.2 Inheritance and Types
  • 6.3 Polymorphism
  • 6.4 Genericity
  • 6.5 Overloading and Overriding
  • 6.6 Languages with Root Classes
  • 6.7 Polyadicity and Default Parameters
  • 6.8 Downcasting and Subtypes
  • 6.9 Review
  • 7. Types II: Types and Objects—Alternatives
  • 7.1 Introduction
  • 7.2 Types and Implementations
  • 7.3 Hiding Implementation Details
  • 7.4 Classes and Type Operations
  • 7.5 Containers and Objects
  • 8. Reflection
  • 8.1 Introduction
  • 8.2 Class and Meta Class
  • 8.3 Meta Class and Reflection
  • 8.4 Meta-Object Protocols
  • 8.5 Self Representation, Abstract Syntax and Abstract Classes..
  • 8.6 Reflection in Java
  • 8.7 Reflection in Prototype-based Languages
  • 8.8 Prospects for the Future
  • 9. C#
  • 9.1 Introduction
  • 9.2 Classes and Instances
  • 9.3 Inheritance
  • 9.4 Methods and Operators
  • 9.5 Polymorphism and Types
  • 9.6 Base Class Library
  • A. BeCecil
  • A.1 Programming Standard 00 Mechanisms
  • A.2 Syntactic Sugar
  • A.3 A Small Example
  • A.4 Concluding Remarks
  • B. Mixed-Paradigm Languages
  • B.1 Introduction
  • B.2 Functional Programming: An Overview
  • B.2.1 Control Structures and Semantics
  • B.2.2 Evaluation Strategies
  • B.2.3 Higher-Order Functions
  • B.2.4 Hindley-Milner Type Inference
  • B.2.5 Syntactic Sugar
  • B.3 An Impure Language
  • B.3.1 The Object-Oriented Component
  • B.3.2 The Functional Component
  • B.4 Review
  • References.