Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
The Oberon system : user guide and programmer’s manual
Reiser M., ACM Press, New York, NY, 1991. 350 pp. Type: Book (9780201544220)
Date Reviewed: Jul 1 1992

The Oberon system was developed at the Swiss Federal Institute ofTechnology (ETH) by N. Wirth, J. Gutknecht, and others. This tutorial iscomposed of three sections. The first is a user’s guide, which explainsthe philosophy of the system and provides instructions for using thestandard editor, the compiler, and the file system. The second sectionis a reference manual, which describes the standard interfaces toinput/output devices and the window system. The third section is aprogramming guide for users who intend to build application programsusing Oberon.

Oberon is an integrated environment for a single-user machine. Itwas originally developed as the primary operating system for the Ceresfamily of workstations developed at ETH, but has since been ported to anumber of other platforms. I use a version that runs as a UNIX processin a single X window on a DECstation 5000.

The Oberon language, in which the system is programmed, is adescendant of Modula-2 with a number of simplifications and a fewadditions. The most noteworthy addition is a type-extension facilitythat allows the creation of new record types as extensions of apreviously defined base type. This facility provides a form ofobject-oriented programming that is used extensively in the displaymanagement portion of the system. The Oberon compiler is an integralpart of the system and is extremely fast. The 70 modules that make upOberon can be compiled in less than a minute on the DECstation5000.

Oberon presents the user with a tiled window system with twocolumns or “tracks.” The first track is used for applicationwindows, or “viewers.” The second, narrower system track isused for control viewers, or “tools.” Tools are prepackagedtask-centered sets of text commands that may be stored in files anddisplayed in the system track, ready for use. The system does notprovide a conventional command interpreter. Instead, any text of theform Mod.Proc, when selected with amouse button, causes the module Modto be dynamically loaded if it is not present, and the procedureProc within that module to be called.Standard methods are provided to allow command procedures to access textparameters, either from the text line containing the command or from avisible text selection. The user interface is spartan andextremely mouse-oriented, but it provides most essential featuresprovided by more elaborate interfaces. Cutting and pasting betweenwindows, multiple fonts, and a color display, for example, are fullysupported.

For the applications programmer, Oberon provides a modularenvironment with well-defined interfaces. Graphics applications canusually be constructed as extensions of previously defined classes,using the type extension facility mentioned earlier. The standard texteditor, for example, is a module containing only 520 lines of Oberoncode. The dynamic loading facility, garbage collection, and a fastcompiler make program development considerably more interactive than inany other environment I have seen. While probably not suitable forlarge, multiperson programming projects, Oberon demonstrates that asystem that supports most of the computing needs of a single user neednot be large and complex.

This book is intended for users and application programmers. Thepreface and first chapter give historical perspective on the system anddescribe the system philosophy, which is to simplify and consolidateconcepts wherever possible. The user’s guide, consisting of sixchapters, is complete and thorough. The user interface and the standardtext editor are described in chapters 2 and 3; chapter 4 describes thefiling operations available to the user; chapter 5 describes theoperation of the compiler; and chapters 6 through 8 describe commandsfor dealing with diskettes and with a network. Chapters 6 through 8 willbe of little use to most users, since they are based on theimplementation used at ETH. They do, however, provideinteresting insights into the degree to which complexity has beenreduced in the Oberon environment.

The second section, which consists of nine chapters, is theprogramming reference manual for Oberon. To present the system, Reiserprovides the export definitions for each of the system’s principalmodules, then discusses these interfaces in detail. Each module exportsprocedures and data types that allow higher-level modules to operate oninstances of the abstract data types implemented by that module. Themodules discussed include those that manipulate files, viewers(windows), and texts (abstractions of sequences of characters with theassociated properties of font, color, and vertical offset). Thepresentation is bottom-up and parallels the layered structure of thesystem itself.

The third section provides a number of hints and program fragmentsintended primarily for programmers building Oberon applications. Itpresumes a knowledge of the Oberon language and is quite detailed. Thematerial shows how the designers of Oberon intend it to beused--something that is frequently missing in similar texts. Afinal appendix gives a detailed description of the design andimplementation of a new viewer class that is similar to the clipboard ofthe Macintosh.

This work is not suitable as the only reference for Oberon, sinceit does not include a description of the language. It does provide aninvaluable reference for those intending to actually use the Oberonsystem, or those who wish to understand details not presented in earliertechnical reports and papers. In several months of using the book andthe Oberon system, I have discovered few typographical or factualerrors. The author has provided a large number of figures that enhancethe presentation substantially. This book would be a useful adjunct textfor a programming course that uses Oberon, and it presents the bestoverview to date of this interesting and innovative system. I recommendit highly.

Reviewer:  Charles Thacker Review #: CR125994 (92070443)
Bookmark and Share
 
Oberon (D.3.2 ... )
 
 
Oberon (D.4.0 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Oberon": Date
Programming in Oberon
Reiser M., Wirth N., ACM Press, New York, NY, 1992. Type: Book (9780201565430)
Mar 1 1993
The Oberon system: user guide and programmer’s manual
Reiser M., ACM Press, New York, NY, 1991.  350, Type: Book (9780201544220), Reviews: (1 of 4)
Sep 1 1991
The Oberon system: user guide and programmer’s manual
Reiser M., ACM Press, New York, NY, 1991.  350, Type: Book (9780201544220), Reviews: (3 of 4)
Sep 1 1992
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy