Comp.lang.oberon FAQ (monthly) 
Author Message
 Comp.lang.oberon FAQ (monthly)

Archive-name: Oberon-FAQ

     (*  * *  * *  * *  * *  * *  * *  * *  * *  * *  * *  *)

     Many FAQ lists, including this one, are available by anonymous
ftp from in the /pub/usenet/news.answers directory.
The name under which a FAQ is archived appears in the Archive-name
line near the beginning of the article.  This document is archived
as Oberon-FAQ.
     Thanks to all who have contributed!  Further additions and
corrections are welcome.

     (*  * *  * *  * *  * *  * *  * *  * *  * *  * *  * *  *)

Comp.lang.oberon Frequently Asked Questions

Copyright 1993 Mike Gallo
(c) 1993 Mike Gallo


     This document is organized into the following sections.  Each
section is preceded by a dollar sign.
     What is Comp.lang.oberon?
     What is Oberon?
     The Oberon system
     The programming language Oberon
     Oberon system 3
     The programming language Oberon-2
     What about Modula-3, Object Oberon, and Seneca?
     For more information on Oberon
     To get an implementation


     The Comp.lang.oberon newsgroup is a forum for discussing
Oberon, both the programming language and the operating system, and
any related issues.  Because it started as a spin-off from
Comp.lang.modula2, this newsgroup is part of the Comp.lang.*


>From "The Oberon Guide"

          Oberon is simultaneously the name of a project and of its
     outcome. The project was started by Niklaus Wirth and [Juerg
     Gutknecht] late in 1985 with the goal of developing a modern
     and portable operating system for personal workstations. Its
     results are an implementation of the system for the Ceres
     computer and a programming language.
          The development of the language Oberon needs perhaps a
     short justification. It became quite inevitable because the
     type-system of available languages turned out to be too
     restrictive to express the desired data model in a natural and
     safe way.


>From "The Oberon Guide"

          For the present, we focus on the system Oberon, beginning
     with a brief overview of its design principles. The underlying
     dynamic model is extremely simple. There exists a single
     process acting as a common carrier of multiple tasks. This
     process repetitively interprets commands, which are the
     official entities of execution in Oberon. Commands are atomic
     actions operating on the global state of the system. Unlike
     customary interactive programs, they rigorously avoid direct
     dialogs with the system user.


>From "From Modula to Oberon"

          The programming language Oberon is the result of a
     concentrated effort to increase the power of Modula-2 and
     simultaneously to reduce its complexity. Several features were
     eliminated, and a few were added in order to increase the
     expressive power and flexibility of the language. This paper
     describes and motivates the changes. The language is defined
     in a concise report.
          Whereas modern languages, such as Modula, support the
     notion of extensibility in the procedural realm, the notion is
     less well established in the domain of data types. In
     particular, Modula does not allow the definition of new data
     types as extensions of other, programmer-defined types in an
     adequate manner. An additional feature was called for, thereby
     giving rise to an extension of Modula.


>From "Oberon System 3 -- A Realm of Persistent Objects"

          We soon decided to realize our ideas by developing System
     3, an evolutionary version of the original Oberon system. From
     our vision and from examples like the one in Figure 1 it
     followed immediately that System 3 needs to be settled one
     important step beyond the ordinary state of object-oriented
     programming because it needs to be able to manage hundreds or
     even thousands of persistent objects and components that can
     appear in extensive variety, including at least character
     patterns, formulae, all kinds of figures, pictures, gadgets
     and widgets. What was obviously needed is a central object
     management and some concept like object library.


>From "The Gadgets Guide"

          Gadgets is a graphical user interface management system
     for Oberon System 3. It consists of a set of end-user objects
     for building graphical user interfaces. This construction
     process is done at run-time, hence end-user objects. These
     end-user objects are called gadgets. Gadgets may range from
     buttons and checkboxes, to more complicated ones like text and
     drawing editors. Not only do you have the possibility of using
     applications that have been built with gadgets, but building
     your own graphical user interfaces from the provided parts.
     Also, should the provided gadgets not fulfill your needs, you
     may program your own, either extending existing ones, or by
     building completely new ones. You may also borrow parts from
     other applications.


>From "Differences between Oberon and Oberon-2"

          Oberon-2 is a true extension of Oberon. . . .
          One important goal for Oberon-2 was to make
     object-oriented programming easier without sacrificing the
     conceptual simplicity of Oberon. After three years of using
     Oberon and its experimental offspring Object Oberon we merged
     our experiences into a single refined version of Oberon.
          The new features of Oberon-2 are type-bound procedures
     [virtual methods], read-only export of variables and record
     fields, open arrays as pointer base types, and a with
     statement with variants. The for statement is reintroduced
     after having been eliminated in the step from Modula-2 to


     Modula-3 is a language designed by DEC Software Research
Center.  Although also a descendant (but not a superset) of Modula-
2, it is otherwise unrelated to Oberon.  Unless they bear on
Oberon, discussions about Modula-3 are better directed to
     Object Oberon is a now defunct, experimental extension of
Oberon featuring "classes", structures somewhere in between modules
and records.  It evolved into Oberon-2.
     Seneca (soon to be renamed) is a variant of Oberon focusing on
numerical programming on supercomputers.  It is still under
development by R. Griesemer at ETH, but a new report is expected to
come out later this year.


     Complete postscript documentation from ETH is available by
anonymous ftp from:, and

     For technical reports of the Institut fuer Computersysteme,


"Designing a System from Scratch" by N. Wirth
Structured Programming
10,1 (January 1989) 10-18

"The Oberon System" by N. Wirth and J. Gutknecht
Software: Practice and Experience
19,9 (September 1989) 857-893

The Oberon System: User Guide and Programmer's Manual by M. Reiser,
ACM Press 1992; ISBN 0-201-54422-9

Project Oberon: The Design of an Operating System and Compiler by
N. Wirth and J. Gutknecht, ACM Press 1992; ISBN 0-201-54428-8

"Oberon: A Glimpse at the Future" by{*filter*} Pountain
May 1993

"Implementing an Operating System on Top of Another" by M. Franz
Software: Practice and Experience
23,6 (June 1993) 677-692


"Type Extensions" by N. Wirth
ACM Transactions on Programming Languages and Systems
10,2 (April 1988) 204-214.

"From Modula to Oberon" by N. Wirth
Software: Practice and Experience
18,7 (July 1988) 661-670

"The Programming Language Oberon" by N. Wirth
Software: Practice and Experience
18,7 (July 1988) 671-690

"Variations on the Role of Module Interfaces" by J. Gutknecht.
Structured Programming
10,1 (Jan. 1989) 40-46

A New Approach to Formal Language Definition and Its Application to
Oberon by M. Odersky, Verlag der Fachvereine Zuerich 1989; ISBN 3-

"Oberon" by{*filter*} Pountain
March 1991

Programming in Oberon: Steps Beyond Pascal and Modula-2 by M.
Reiser and N. Wirth, ACM Press 1992; ISBN 0-201-56543-9

Object Oriented Programming in Oberon-2 by H. Moessenboeck,
Springer-Verlag 1993; ISBN 3-540-56411-X


     Please note that mention of a product or company does not
necessarily imply a recommendation thereof.
     The original project was launched and carried out by N. Wirth
and J. Gutknecht for the Ceres workstation.  As of this writing,
ported versions of the Oberon language and system are now available
for the Sun-SPARC, the Apple-Macintosh-II, the DECstation, the IBM
RS/6000, MS-DOS for Intel 386, and the Silicon Graphics Indigo.
Oberon System 3 has been ported to the Sun-SPARC and MS-DOS for
Intel 386.
     These are available by anonymous ftp from:, and

For Oberon compilers developed outside ETH contact

  ModulaWare GmbH, Wilhelmstr. 17A, D-W 8520 Erlangen/F.R.Germany
  Modula-2 & Oberon-2 Compiler Manufactur
  Tel. +49 (9131) 208395, Fax +49 (9131) 28205.


    Real Time Associates Ltd.
    Canning House, 59 Canning Road
    Croydon, Surrey, CRO 6QF
    Tel.: 0044-81-656 7333
    Fax: 0044-81-655 0401

  COP2 (partial Oberon to C translator)

  A+L AG
  Daederiz 61
  CH-2540 Grenchen
  Tel.: +41 (65) 52 03 11

DECstation (Ultrix, OSF/1), Intel386 (SVR4, OS2, Solaris), Sparc
  Office of Commercial Services
  Queensland University of Technology
  GPO box 2434, Brisbane Q4001

  Martin Momberg
  Hahlgartenstr. 13a
  D-64331 Weiterstadt

  anonymous ftp:
    changing to directory /pub/machines/atari/programming/stoberon

In science, the only rule is: _anything goes_.
                                -- Paul Feyerabend

Sun, 18 Feb 1996 10:41:59 GMT  
 [ 1 post ] 

 Relevant Pages 

1. Comp.lang.oberon FAQ (monthly) 2/3

2. Comp.lang.oberon FAQ (monthly) 3/3

3. Comp.lang.oberon FAQ (monthly) 1/3

4. Comp.lang.oberon FAQ (monthly) 3/3

5. Comp.lang.oberon FAQ (monthly) 1/3

6. Comp.lang.oberon FAQ (monthly) 2/3

7. Comp.lang.oberon FAQ (monthly) 0 of 3

8. Comp.lang.oberon FAQ (monthly) 2 of 3

9. Comp.lang.oberon FAQ (monthly) 3 of 3

10. Comp.lang.oberon FAQ (monthly) 2/3

11. Comp.lang.oberon FAQ (monthly) 3/3

12. Comp.lang.oberon FAQ (monthly) 1/3


Powered by phpBB® Forum Software