A resource for the Oberon-07 language

Oberon-07 is a series of revisions to the Oberon language by Niklaus Wirth after his retirement from ETH Zürich, and is influenced by two generations of languages. The first generation is that of Algol-60 and Pascal. The second generation is that of Modula-2 and Oberon. See www.inf.ethz.ch/person/wirth/projects.html for a brief history of N. E. Wirth's work.

MODULE gcd; IMPORT Texts, Oberon;
  VAR W: Texts.Writer;
  
PROCEDURE gcdlcm*;
VAR x, y, u, v: INTEGER;
  S: Texts.Scanner;
BEGIN
  Texts.OpenScanner(S, Oberon.Par.text,
    Oberon.Par.pos);
  Texts.Scan(S); x := S.i;
  Texts.WriteString(W, " x =");
  Texts.WriteInt(W, x, 6);
  Texts.Scan(S); y := S.i;
  Texts.WriteString(W, " y =");
  Texts.WriteInt(W, y, 6);
  u := x; v := y;
  (*gcd(x,y) = gcd(x0,y0),
    x*v + y*u = 2*x0*y0*)
  WHILE x > y DO x := x - y; u := u + v
  ELSIF x < y DO y := y - x; v := v + u
  END;
  Texts.WriteInt(W, x, 6);
  Texts.WriteInt(W, (u+v) DIV 2, 6);
  Texts.WriteLn(W);
  Texts.Append(Oberon.Log, W.buf)
END gcdlcm;

BEGIN Texts.OpenWriter(W)
END gcd.

Pascal and Modula-2 have been standardized by the ISO/IEC. Oberon was, or perhaps purposely was not, standardized through the "Oakwood Guidelines for Oberon-2 Compiler Developers", which defined a minimal standard library, and extensions for classic Oberon implementations. Oberon-07 is defined in The Programming Language Oberon, sometimes called the Oberon Report.

The Oberon Report was first published in September 1987 (ETH Zürich) as a revision of the Modula-2 Report (PIM3). A follow up was published in July 1988, with corrections in January 1989, and revised in September 1989 (ETH Zürich Report 111), October 1990, November 1990 (Report 143), and a final polished version in 1992 with the publication of Programming in Oberon: Steps Beyond Pascal with Martin Reiser. The Oberon-2 Report was first published in 1991, with the current revision from 1995. The first Oberon-07 Report was finished in 2007 (published in 2008) as a revision of the October 1990 Report (and Oberon-2 concepts), and revised in 2011, 2013, and in February, March, and June of 2014. (The February 2014 Report was mislabeled as the October 2013 Report.) The current Oberon Report (PDF) was published as a PDF 16 June 2014, but it is still labeled as 10 March 2014.

Community

There is a chat room at chat.freenode.net, #oberon, that discusses all things related to Oberon. Also, see Usenet: comp.lang.oberon. Finally, the ETH Oberon mailing list: https://lists.inf.ethz.ch/mailman/listinfo/oberon.