Contents
Contents
Preface
Organization
Acknowledgments
Introduction
Object Oriented Programming
The Evolution of Programming Languages
Ada 9X
C++
CLOS
Eiffel
ML
Modula-3
Object Pascal
Oberon
Smalltalk
Object Oriented Concepts
Inheritance
Class variables
Encapsulation
Procedure name overloading
Operator overloading
Methods
Before and after methods
Method selection based on all arguments
Non virtual methods
Constructors and destructors
Metaclasses
Exception Handling
Generic Modules
Substitutes for multiple inheritance
Discussion
Object Oriented Design
The Object Model
The Dynamic Model
The Functional Model
Analysis
System Design
Object Design
Sample Object Oriented Languages
A Simple Object Oriented Language: Obliq
Single and Multiple Inheritance
Class and Instance Variables and Methods
C++
Classes
References
Automatic Type Conversion
Constructors and Destructors
Function Name Overload
Operator Overload
Templates
Exceptions
Linkage with C
Conclusion
Modula-3
Modular Programming
Interfaces
Litterate Programming
Dependency Analysis
Modules in Modula-3
Run time Libraries and Tools
Safe Language Features
Debugging
Coverage Analysis
Performance Analysis
Dynamic Memory Allocation
Memory allocation errors
Memory allocation algorithms
Garbage collection
Run time type identification
Multi-threading
Embedded Languages
Run Time Analysis of Modula-3 Programs
Run time checks
Coverage Analysis
Profiling
Debugging
Graphical tools
Embedded language
Object Oriented Libraries
Standard Libraries
The Modula-3 Standard Library
User Interface Libraries
Device independence
Low level graphics
Building blocks for toolkits
Toolkits
Graphical interface builders
User interface and Object Orientation
Trestle
VBTKit
FormsVBT
A Complete Graphical Application Example
Graphical items
View: displaying items
Win: user interaction
The user interface
The diagram editor
Distributed and Persistent Objects
Network Objects
Remote procedure calls
Network objects
Persistent Objects
Translation between memory and disk representations
Lazy loading and unloading
Persistence through reachability
Updating the persistent storage
Object Oriented Databases
Fized size limitations
Unique object identifiers
The programming language versus database gap
Storing procedures in the database
Distributed Persistent Objects in Modula-3
Network objects
Persistent objects
Stable persistent objects
Indexing
Query Processing
Transactions
Optimized loading and unloading
Conclusion
Digital License Agreement
About this document ...