A resource for the Oberon-07 language

Oberon-07 is a new language from Niklaus Wirth based on Oberon-SA and Oberon-2 (1991-1995 by Hanspeter Mössenböck), and influenced by Oberon/L (later Component Pascal, as implemented in Oberon/F and Blackbox Component Builder). See inf.ethz.ch/person/wirth/projects.html for a brief history of N. E. Wirth's work.

MODULE hello; (*DEE 2016-02-06/2016-08-15*)
  IMPORT Texts, Oberon;
  VAR W: Texts.Writer;
  PROCEDURE world*;
  BEGIN Texts.WriteString(W, "hello, world");
    Texts.Append(Oberon.Log, W.buf)
  END world;

BEGIN Texts.OpenWriter(W)
END hello.

ORP.Compile hello.Mod /s ~

Revised (Classic) 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.

Sometimes called the Oberon Report, The Programming Language Oberon 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.

Revised Oberon was published in September 1989 (ETH Zürich Report 111), with revisions in October 1990, November 1990 (Report 143), and a final polished version in 1992 with the publication of Programming in Oberon: Steps Beyond Pascal. In 2004, Wirth released an electronic revision of Programming in Modula-2, Fourth Edition as Programming In Oberon, and an Oberon version of Algorithms and Data Structures. Revisions of his Oberon works Project Oberon, and Compiler Construction, were released in 2005. These works, as well as the 1996 Compiler Construction, included the FOR loop, but not the rest of Oberon-2 extensions.

The introduction of Oberon-07 was based on the Oberon-SA Technical Memo Nr. 2 (1998/1999), describing an extension of Oberon-SA, and a new compiler design in 2007, revised in 2008, making it an official revision of Oberon and Oberon-2. Later in 2008, a formal report was released based on it, revising the October 1990 Revised Oberon Report (not including the November 1990 and Reiser PIO 1992 additions and corrections). This work described an implementation for a model helicopter using the DEC StrongARM DS1035 and FPGA XC6200 begun in 1995.

In 2010, work on a new FPGA design led to a Revised Oberon-07 Report in 2011 and a revision of Compiler Construction. The 2004 text Programming in Oberon was updated against the new 2011 Report. This design was moved to the Xilinx Spartan-3 in 2013. A revision of Compiler Construction was released, a 2013 revision of the 2011 Report, and a revision of Project Oberon (2005), now released as the Second Edition. Revisions to Project Oberon, Programming in Oberon, and the Report continued. Revisions to the 2013 Report were published in February, March, and June of 2014; February and March of 2015 (the February 2014 Report was mislabeled as the October 2013 Report. The June 2014 Report was mislabeled as the March 2014 Report); and 18 March 2015, and 19 March 2015 (silently correcting an appendix oversight in the 18 March version). The 15 February 2016 Oberon Report was modified and posted 23 February 2016. The current Oberon Report is labeled 3 May 2016, posted 8 May and modified 10 May 2016.

Work continues on Compiler Construction and the code base of Project Oberon 2013.


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.