Jump to content

Oberon: Difference between revisions

From EDM2
Line 45: Line 45:
* Jürg Gutknecht & Niklaus Wirth: [http://www-oldurls.inf.ethz.ch/personal/wirth/ProjectOberon/ Project Oberon; The Design of an Operating System and Compiler] Updated version from 2013 (Not as well formatted as the earlier version)
* Jürg Gutknecht & Niklaus Wirth: [http://www-oldurls.inf.ethz.ch/personal/wirth/ProjectOberon/ Project Oberon; The Design of an Operating System and Compiler] Updated version from 2013 (Not as well formatted as the earlier version)
* Hanspeter Mössenböck [http://ssw.jku.at/Research/Books/Oberon2.pdf Object-Oriented Programming in Oberon-2]
* Hanspeter Mössenböck [http://ssw.jku.at/Research/Books/Oberon2.pdf Object-Oriented Programming in Oberon-2]
* Hanspeter Mössenböck [https://www.cs.helsinki.fi/njc/njc1_papers/number1/inv_paper4.pdf Extensibility in the Oberon system]
* Hanspeter Mössenböck & Christof Steindl: [http://www.ssw.uni-linz.ac.at/Research/Projects/Reflection/Reflection99/paper.ps The Oberon-2 Reflection Model and its Applications]
* Hanspeter Mössenböck & Christof Steindl: [http://www.ssw.uni-linz.ac.at/Research/Projects/Reflection/Reflection99/paper.ps The Oberon-2 Reflection Model and its Applications]
* Niklaus Wirth: [http://members.home.nl/jmr272/Oberon/ModToOberon.pdf From Modula to Oberon]
* Niklaus Wirth: [http://members.home.nl/jmr272/Oberon/ModToOberon.pdf From Modula to Oberon]
* Jürg Gutknecht & Mihael Franz: [https://web.archive.org/web/20050915000000*/http://www.ics.uci.edu/~franz/publications/OberonWithGadgetsPrepub.pdf Oberon with Gadgets - A Simple Component Framework]
* Jürg Gutknecht & Mihael Franz: [https://web.archive.org/web/20050915000000*/http://www.ics.uci.edu/~franz/publications/OberonWithGadgetsPrepub.pdf Oberon with Gadgets - A Simple Component Framework]
* Jürg Gutknecht: [ftp://ftp2.de.freebsd.org/pub/languages/oberon/ftp.inf.ethz.ch/System3/Papers/jcsi0.ps Oberon, Gadgets and Some Archetypal Aspects of Persistent Objects]
* Jürg Gutknecht: [ftp://ftp2.de.freebsd.org/pub/languages/oberon/ftp.inf.ethz.ch/System3/Papers/jcsi0.ps Oberon, Gadgets and Some Archetypal Aspects of Persistent Objects]
* J. Marais: [ftp://ftp.inf.ethz.ch/pub/publications/dissertations/th11697.ps.gz Design and Implementation of a Component Architecture for Oberon] ETH Zürich 1996.
* J. Marais: Extensible Software Systems in Oberon - Journal of Computational and Graphical Statistics, Vol 5 (1996)


;WebL
* Hannes Marais: [https://web.archive.org/web/20050212234457/http://www.research.compaq.com/SRC/WebL/WebL.pdf Compaq’s Web Language: A Programming Language for the Web]
====Classic EDM/2 articles====
====Classic EDM/2 articles====
* [[XDS Oberon]] by [[Paul Floyd]] (May 1999)  
* [[XDS Oberon]] by [[Paul Floyd]] (May 1999)  

Revision as of 20:37, 29 February 2016

Oberon is a structured object oriented and procedural language in the Algol family that was introduced by Niklaus Wirth in 1988 alongside an operating system with the same name. It was based on his earlier Modula 2 language but adds limited object-orientation but at the same time removes a lot of the M2 Language features in order to simplify the language and compiler. Oberon-2 is an extension of Oberon developed in 1992 by Hanspeter Mössenböck that adds stronger object-orientation and brings back a couple of features from Modula-2.

Note that with the exception of the Oberon compilers developed by Hr. Wirth himself that in general only support the original Oberon, most developers support both languages without explicitly mentioning it, this is because Oberon-2 is purely and addition to Oberon and therefore you can program in the earlier variation without any problems. But the literature does frequently not differentiate correctly between the two.

There are descendant languages that some classify as Oberon and others as members of the Oberon family, we include the few implementations that actually run under OS/2 in some form here just to simplify things, it is not a taxidermy issue. Active Oberon is a variant of either Oberon or Oberon-2 that has explicit support for programming multi core processors, Oberon/0 is a simplified version of the language intended to be used in teaching compiler construction, it is therefore as much a descendant of PL/0 (simplified Pascal) as of Oberon proper and you are not meant to download a copy, but rather make one yourself.

Oberon/L is now called Component Pascal is a variant designed specifically to allow development of software components, there is no native OS/2 implementation but a Java implementation exists and Blackbox Oberon runs fine under Odin, older versions actually work in WinOS/2 with Win32s installed, Blackbox Oberon used to be called Oberon/F BTW. Zonnon is a descendant of Active Oberon that adds safety features and a stronger object system. Oberon07 is simply a name for the latest version of the Oberon standard and does not differ too much from the original, the last update to the Oberon 07 standard was in the summer of 2014.

A list of OS/2 implementations of Oberon

OS/2 text & programmers editors with Oberon support

A list of DOS implementations of Oberon

A list of Oberon implementations that run under WinOS/2

  • BlackBox Oberon - Current Oberon Core version does not work, older versions however do work with Win32s installed.
  • Programmers Open Workbench - Aka POW!/16 - Open source - Discontinued

A list of Oberon implementations that run under Java

A list of Oberon implementations in JavaScript

  • OberonScript - Can be run inside a web browser or by using the JavaScript Desktop Enabler.
  • Microsoft Oberon Script - Older version of the above, code appears to have gone missing.

Links

  • The MODulator - Modula-2 and Oberon articles from the gents behind the ModulaWare company in Switzerland, used to be a paper newsletter back in the day.
  • Oberon2.ru - Massive Russian site dedicated to all things Wirthian, forum in particular strong.

Publications

WebL

Classic EDM/2 articles

Local articles

Tutorials and other learning material

  • POW Tutorial in German by Jörg Langenau, uses standard Oberon-2 syntax and is thus usable with other compilers.

Standards