Organization

Many sections in this book are self-contained and may be read out of order or skipped altogether. For instance, those already familiar with C++ or only interested in the Modula-3 programming environment may want to skip the section on how objects are implemented in C++.

The ordering reflects the needs of the classroom. Sections required to write simple programs are presented early while more specialized material used in assignments at the end of term are presented last. For each topic, the main concepts are presented and then illustrated by examples. For a number of tools and libraries described in this book, the detailed description or reference manual is freely available separately, in electronic form.

The text starts with a brief review of existing object oriented programming languages used as examples later in the text. Then, the main concepts in object oriented design and programming are introduced. The implementation of these concepts in the languages Obliq, C++ and Modula-3 is examined thereafter.

The following sections study the decomposition of programs into documented interfaces and modules, and how compilation tools perform the dependency analysis to determine which modules need to be compiled. Then, run time error detection, debugging, coverage analysis, profiling, dynamic memory allocation, multi-threading and embedded command languages are discussed.

This is followed by a section concentrating on object oriented libraries and related tools. These libraries cover operating system access as well as user interface building tools.

Finally, tools and libraries for persistent and distributed objects, which enable distributed applications with persistent data, are presented.

The reader is expected to have at hand a copy of the following electronically available documents: Modula-3 language definition, SRC Modula-3 Version 3.3 (or later), Some useful Modula-3 Interfaces, Obliq A language with distributed scope, The FormsVBT Reference Manual. It is highly desirable to have access to the freely available SRC Modula-3 development environment Version 3.5.1 (or later).


Copyright 1995 Michel Dagenais, dagenais@vlsi.polymtl.ca, Wed Mar 8 14:41:03 EST 1995