Archive-name: Oberon-FAQ
(* * * * * * * * * * * * * * * * * * * * * *)
Many FAQ lists, including this one, are available by anonymous
ftp from rtfm.mit.edu 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
$ CONTENTS
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
Gadgets
The programming language Oberon-2
What about Modula-3, Object Oberon, and Seneca?
For more information on Oberon
To get an implementation
$ WHAT IS COMP.LANG.OBERON?
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.*
hierarchy.
$ WHAT IS OBERON?
Quote:
>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.
$ THE OBERON SYSTEM
Quote:
>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.
$ THE PROGRAMMING LANGUAGE OBERON
Quote:
>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.
$ OBERON SYSTEM 3
Quote:
>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.
$ GADGETS
Quote:
>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.
$ THE PROGRAMMING LANGUAGE OBERON-2
Quote:
>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
Oberon.
$ WHAT ABOUT MODULA-3, OBJECT OBERON, AND SENECA?
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
Comp.lang.modula3.
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.
$ FOR MORE INFORMATION
Complete postscript documentation from ETH is available by
anonymous ftp from:
neptune.inf.ethz.ch:/Oberon, and
gatekeeper.dec.com:/pub/plan/Oberon
For technical reports of the Institut fuer Computersysteme,
THE SYSTEM
"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
BYTE
May 1993
"Implementing an Operating System on Top of Another" by M. Franz
Software: Practice and Experience
23,6 (June 1993) 677-692
THE PROGRAMING LANGUAGE
"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-
7281-1732-3
"Oberon" by{*filter*} Pountain
BYTE
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
$ TO GET AN IMPLEMENTATION
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:
neptune.inf.ethz.ch:/Oberon, and
gatekeeper.dec.com:/pub/plan/Oberon
For Oberon compilers developed outside ETH contact
VAX/VMS:
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.
E-mail/Internet:
MS-DOS:
Oberon-M
Extacy
Real Time Associates Ltd.
Canning House, 59 Canning Road
Croydon, Surrey, CRO 6QF
England
Tel.: 0044-81-656 7333
Fax: 0044-81-655 0401
COP2 (partial Oberon to C translator)
Amiga:
A+L AG
Daederiz 61
CH-2540 Grenchen
Tel.: +41 (65) 52 03 11
DECstation (Ultrix, OSF/1), Intel386 (SVR4, OS2, Solaris), Sparc
(Solaris)
Office of Commercial Services
Queensland University of Technology
GPO box 2434, Brisbane Q4001
Australia
Atari:
Martin Momberg
Hahlgartenstr. 13a
D-64331 Weiterstadt
Germany
anonymous ftp:
ftp.th-darmstadt.de
changing to directory /pub/machines/atari/programming/stoberon
--
In science, the only rule is: _anything goes_.
-- Paul Feyerabend