Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!rice!titan.rice.edu!preston From: preston@titan.rice.edu (Preston Briggs) Newsgroups: comp.lang.modula2 Subject: Re: Modula3 and Oberon requests Message-ID: <1990Sep10.165045.21083@rice.edu> Date: 10 Sep 90 16:50:45 GMT References: <5792@plains.NoDak.edu> Sender: news@rice.edu (News) Organization: Rice University, Houston Lines: 71 In article moss@cs.umass.edu writes: >Perhaps someone else will post a resposne >indicating where to learn more about Oberon. A quick summary: Oberon has simplified Modula-2 by eliminating variant records, enumerated types, nested modules, unqualified import, WITH statements, CARDINAL, multitasking, OPAQUE, and maybe some other stuff. Oberon extends Modula-2 by adding garbage collection, type extension, multi-dimensional array parameters, and a new kind of WITH statement. The key new feature is type extension. Here's a simple example. Imagine we want to declare a generally useful binary tree: TYPE Tree = POINTER TO TreeNode; TreeNode = RECORD left, right: Tree END; So far so good, but there's no data in our tree. We can declare several extensions, one for each type of data: TYPE IntTreeNode = RECORD (TreeNode) key: INTEGER END; IntTree = POINTER TO IntTreeNode; RealTreeNode = RECORD (TreeNode) key: REAL END; RealTree = POINTER TO RealTreeNode; and so forth. The idea is that we'll be able to use the same code to manipulate trees of int's and tree of real's (or mixed trees). Note that we may re-extend extensions as necessary, and that extensions provide the functionality of variant records in a cleaner fashion. There are some details I haven't shown, but perhaps this will give you the flavor. There are several papers on various aspects of the Oberon language. There are also related papers on the Oberon OS and the Ceres hardware. Some language papers include Type Extensions Wirth ACM Transactions on Programming Languages and Systems April 1988 From Modula to Oberon Wirth Software -- Practice and Experience, July 1988 The Programming Language Oberon Wirth Software -- Practice and Experience, July 1988 There's also a revised report available from ETH, dated August 1989. Finally, you should check out the Journal of Structured Programming. It often has articles on Oberon (and lots of other good stuff, including various extensions to Modula-2). -- Preston Briggs looking for the great leap forward preston@titan.rice.edu