A programming language developed by NiklausWirth
at ETH Zürich starting 1985.
- ObjectOrientation to a small level: Basically all it supports are function pointers, structs and extension of structs. Sometimes it's not easy to do all the stuff with these functions only. Oberon2 has a higher level of support for ObjectOrientation.
- GarbageCollection: There is no way to delete a pointer directly.
- OberonOperatingSystem: It usually comes together with its own single user operating system but it's also available without it.
It is sort of like a refactoring of ModulaThree
Hmm, I would not say so, AFAIK ModulaThree
was designed in parallel to Oberon, and both are offshoots of ModulaTwo
. The genealogy of Oberon and its successors is nicely given in http://www.oberon.ethz.ch/genealogy.html
Apparently, it was a rewrite of Xerox's Cedar programming environment. Wirth and Gutknecht spent some time at XeroxParc and decided that the system was far too large. One of their targets was that Oberon should compile Oberon in less than a minute (on a 386 in those days).
Actually, the first Oberon machine was the Ceres-1, which was based on the National Semiconductor NS32032 (roughly equivalent to a 12MHz 286 in performance). If I remember correctly, the Ceres-1 I used during a three-week visit to ETH in early 1989 had 2Mb of memory, a 40Mb hard disk, 720k floppy, mouse, and a 1024x800 monochrome display. And yes, compilations were instantaneous. It was a beautiful system to work with. -- StefanVorkoetter
This will certainly work. On ETH, we used quite old Ceres-3, which included the OberonOperatingSystem
. I used it quite a lot in my studies, and while my programs were not huge, some of them had quite a few lines of code. However, I never
noticed compilation take any
time. It was always instant.
We sum the contents in an array:
PROCEDURE ArraySum*(r: ARRAY OF INTEGER): INTEGER;
sum := 0;
FOR i := 0 TO LEN(r) - 1 DO
sum := sum + r[i]
The star in the procedure declaration is similar to the Java keyword public.
For more information see also: http://www.oberon.ethz.ch/
or any of the "Oberon Trilogy" books which are all three out of print:
- Reiser & Wirth (1992) "Programming in Oberon - Steps beyond Pascal and Modula" ISBN 0-201-56543-9
- Reiser (1991) "The Oberon System: User Guide and Programmer's Manual" ISBN 0-201-54422-9
- Wirth & Gutknecht: "Project Oberon: The Design of an Operating System and Compiler" (1992) ISBN 0-201-54428-8