[Oberon] Class Methods Vs. Procedure variables in Records

Andreas Pirklbauer andreas_pirklbauer at yahoo.com
Sun Mar 5 23:50:23 CET 2017

When Object Oberon was released in 1989, this was in fact done. Appendix 3 of the Object Oberon report dated June 1989 contains a description of a basic class library written in OOP style, which essentially corresponds to the Original Oberon viewer system.
For example, there is a core module “Frames" exporting a class “Frame", which in turn defines a set of methods such as Show, Hide, Resize, Move, Copy, Defocus, Neutralize etc. And there is also a module “TFrames” (in analogy to module TextFrames of Original Oberon) exporting a (sub) class “Frame", which defines methods that override some of the basic methods from the base module “Frames”.
But I don’t know how much it was used, and what the experiences were. I haven’t used it myself.

From: Richard Hable informujo at aon.at Sun Mar 5 22:56:49 CET 2017

Am 2017-03-03 um 11:40 schrieb Andreas Pirklbauer:

> That is exactly right: There are indeed no type extensions in the
> Oberon "inner core" (modules Kernel, FileDir, Files and Modules). And
> almost no type extensions in the "outer core" (modules Input,
> Display, Viewers, Fonts, Texts, Oberon). The one exception I found is
> in module Texts

I think, it would actually be a good thing to have more object
orientation also in the core modules. It could make the system less
static and more adaptable and user friendly.

For example, if module TextFrames contained type-bound procedures based
on the Frame type instead of a collection of static procedures with a
Frame parameter, one could easily adapt its behavior by overriding just
a few selected procedures.

And if all documents were based on a common type with overridable
type-bound command procedures, the user would not have to choose between
commands like "Edit.Store" and "Draw.Store", but simply invoke "Store",
which would automatically call the right procedure according to the
actual document type.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20170305/7272e73e/attachment.html>

More information about the Oberon mailing list