[Oberon] Oberon usage
chris at cfbsoftware.com
Mon Jul 12 02:04:24 MEST 2010
>From: oberon-bounces at lists.inf.ethz.ch
>[mailto:oberon-bounces at lists.inf.ethz.ch] On Behalf Of spir
>Sent: Monday, 12 July 2010 12:13 AM
>- no string type
There IS a string type. It is "ARRAY n OF CHAR". It is just a different name
from e.g. "string[n]", "PChar", "System.String" etc.
>- no literal notation for arrays and records/objects (center
I suspect you may have been using Oberon on an operating system that doesn't
fully support its capabilities.
In Oberon you should initialise records in the Initialisation section of the
module (the body of the module). This is executed automatically at load time
and stays loaded to be used by all modules in the system until it is
Point* = RECORD x, y: INTEGER END;
zeroPoint-: Point; (* Readonly to clients *)
zeroPoint.x := 0;
zeroPoint.y := 0;
How the compiler effects that initialisation is totally up to the
implementor. It doesn't even have to generate executable statements if the
execution platform has some other kind of initialisation mechanism.
Then, because in Oberon you can assign entire records in a simple assignment
statement, in the client module you can simply say:
center := Graphics.zeroPoint;
>- no initialisation
> no field default,
IMHO, Explicit is better than implicit. It does lead to a little more work
for the writer perhaps but much easier to comprehend by the reader.
> no param default
Aaargh!!! Horrors! As above. ;-)
Astrobe: ARM Oberon-07 Development System
More information about the Oberon