The Interpretation of Object-Oriented Programming Languages

Object-oriented languages are probably the most important development in computing for many years. They allow us to describe and to model the phys­ ical as well as more abstract worlds. They allow us to provide the computa­ tional entities we describe with a dynamics that is encapsulated, thus leadi...

Full description

Bibliographic Details
Main Author: Craig, Iain
Format: eBook
Language:English
Published: London Springer London 2000, 2000
Edition:1st ed. 2000
Subjects:
Online Access:
Collection: Springer Book Archives -2004 - Collection details see MPG.ReNa
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
  • 8.6 Reflection in Java
  • 8.7 Reflection in Prototype-based Languages
  • 8.8 Prospects for the Future
  • 9. Mixed-Paradigm Languages
  • 9.1 Introduction
  • 9.2 Functional Programming: An Overview
  • 9.3 An Impure Language
  • 9.4 Review
  • References
  • 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 Over-Riding
  • 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