Jump to content

Oberon: Difference between revisions

From EDM2
No edit summary
Ak120 (talk | contribs)
mNo edit summary
Line 1: Line 1:
[[Image:OberonLogo.png|right]]
[[Image:OberonLogo.png|right]]
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.  
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 an addition to Oberon and therefore you can program in the earlier variation without any problems. But the literature supplied with the tools does frequently not differentiate correctly between the two.  
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 an addition to Oberon and therefore you can program in the earlier variation without any problems. But the literature supplied with the tools does frequently not differentiate correctly between the two.  
Line 6: Line 8:
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 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.
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 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. '''Mona''' was a minor variation of Oberon that sported recursive data types, Mona author Martin Odersky went on to write [[Scala]] which sports recursive data types ...
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. '''Mona''' was a minor variation of Oberon that sported recursive data types, Mona author Martin Odersky went on to write [[Scala]] which sports recursive data types ...


'''WebL''' is an Oberon derivative that was specially designed to process web documents, people usually associate it with [[Modula-3]] since some of the same people worked on both systems at the Digital/Compaq research labs and WebL was sometimes shipped with the M3 system, but the ideas behind and the basis for WebL came from the Oberon group at [[ETH]] although the actual implementation is in [[Java]]. HP later renamed WebL as the not very search engine friendly "Web Language" or "HP Web Language". WebL was mostly notable due to the fact that in its day (around the turn of the century) it managed to outperform similar commercial toolkits and was much more compact as well.
'''WebL''' is an Oberon derivative that was specially designed to process web documents, people usually associate it with [[Modula-3]] since some of the same people worked on both systems at the Digital/Compaq research labs and WebL was sometimes shipped with the M3 system, but the ideas behind and the basis for WebL came from the Oberon group at [[ETH]] although the actual implementation is in [[Java]]. HP later renamed WebL as the not very search engine friendly "Web Language" or "HP Web Language". WebL was mostly notable due to the fact that in its day (around the turn of the century) it managed to outperform similar commercial toolkits and was much more compact as well.


==A list of OS/2 implementations of Oberon==
==OS/2 implementations of Oberon==
*[[Canterbury Modula 2 - Oberon-2|Canterbury Modula 2 & Oberon-2]] - Discontinued  
*[[Canterbury Modula 2 - Oberon-2|Canterbury Modula 2 & Oberon-2]] - Discontinued  
*[[ETH Oberon System]] - Discontinued. Note that this is not just the compiler but the entire Oberon OS as a layer on top of OS/2 or eCS.
*[[ETH Oberon System]] - Discontinued. Note that this is not just the compiler but the entire Oberon OS as a layer on top of OS/2.
*[[Gardens Point Oberon-2]] Was available in both Commercial and Open Source variants - Discontinued.
*[[Gardens Point Oberon-2]] Was available in both Commercial and Open Source variants - Discontinued
*[[IBM Oberon-2]] - Internal use only - Was talked about as a EWS release but appears never to have seen the light of day.
*[[IBM Oberon-2]] - Internal use only - Was talked about as a EWS release but appears never to have seen the light of day.
*[[XDS-x86 Modula 2]] - Discontinued
*[[XDS-x86 Modula 2]] - Discontinued


====OS/2 text & programmers editors with Oberon support====
===OS/2 text & programmers editors with Oberon support===
* [[Enhanced Editor]] - Has syntax highlighting and some formatting features available as a [[Adding syntax highlighting to EPM|separate download]].
* [[Enhanced Editor]] - Has syntax highlighting and some formatting features available as a [[Adding syntax highlighting to EPM|separate download]].


==A list of DOS implementations of Oberon==
==DOS implementations of Oberon==
*[[Gardens Point Oberon-2]] Was available in both Commercial and Open Source variants - Discontinued.
*[[Gardens Point Oberon-2]] Was available in both Commercial and Open Source variants - Discontinued
*[[XDS-x86 Modula 2]] - Discontinued
*[[XDS-x86 Modula 2]] - Discontinued


==A list of Oberon implementations that run under WinOS/2==
==Implementations that run under WinOS/2==
* BlackBox Oberon - Current Oberon Core version does not work, older versions however do work with Win32s installed.
* 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
* [[Programmers Open Workbench]] - Aka POW!/16 - Open source - Discontinued


==A list of Oberon implementations that run under Java==
==Implementations that run under Java==
* [[Canterbury Oberon-2 for Java]] - Commercial - Discontinued
* [[Canterbury Oberon-2 for Java]] - Commercial - Discontinued
* [[Gardens Point Component Pascal]] - Open source - Current
* [[Gardens Point Component Pascal]] - Open source - Current
* [http://www.uni-vologda.ac.ru/JOB/ JOB] - Open source - Discontinued
* [http://www.uni-vologda.ac.ru/JOB/ JOB] - Open source - Discontinued


==A list of Oberon implementations in JavaScript==
==Implementations in JavaScript==
*[http://www.ralphsommerer.com/obn.htm OberonScript] - Can be run inside a web browser or by using the JavaScript Desktop Enabler.
*[http://www.ralphsommerer.com/obn.htm OberonScript] - Can be run inside a web browser or by using the JavaScript Desktop Enabler.
*[http://research.microsoft.com/apps/pubs/default.aspx?id=70288 Microsoft Oberon Script] - Older version of the above, code appears to have gone missing.
*[http://research.microsoft.com/apps/pubs/default.aspx?id=70288 Microsoft Oberon Script] - Older version of the above, code appears to have gone missing.
Line 75: Line 77:
* Quanfu Fan & Xiangto Wang: [http://www.cs.arizona.edu/~collberg/Teaching/520/2003/Projects/quanfu.ps.gz Web Languages and An Example: WebL] - In [[PostScript]] fromat.
* Quanfu Fan & Xiangto Wang: [http://www.cs.arizona.edu/~collberg/Teaching/520/2003/Projects/quanfu.ps.gz Web Languages and An Example: WebL] - In [[PostScript]] fromat.
* Josef Templ: [http://collaboration.cmc.ec.gc.ca/science/rpn/biblio/ddj/Website/articles/DDJ/1994/9415/9415i/9415i.htm The Oberon Programming Language: The new Pascal] - Introductionary article.
* Josef Templ: [http://collaboration.cmc.ec.gc.ca/science/rpn/biblio/ddj/Website/articles/DDJ/1994/9415/9415i/9415i.htm The Oberon Programming Language: The new Pascal] - Introductionary article.
* Peter H. Fröhlich and Michael Franz: [http://gaming.jhu.edu/~phf/pub/jmlc-2000.pdf Stand-Alone Messages: A Step Towards Component-Oriented Programming Languages] - In PDF format.
* Peter H. Fröhlich and Michael Franz: [http://gaming.jhu.edu/~phf/pub/jmlc-2000.pdf Stand-Alone Messages: A Step Towards Component-Oriented Programming Languages] - In PDF format
* Michael Franz: [https://pdfs.semanticscholar.org/68c3/9912294de44359c1affeb5fcc8b71247dc32.pdf Emulating an Operating System
* Michael Franz: [https://pdfs.semanticscholar.org/68c3/9912294de44359c1affeb5fcc8b71247dc32.pdf Emulating an Operating System
on Top of Another] - In PDF format.
on Top of Another] - In PDF format.

Revision as of 23:12, 5 February 2017

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 an addition to Oberon and therefore you can program in the earlier variation without any problems. But the literature supplied with the tools 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 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. Mona was a minor variation of Oberon that sported recursive data types, Mona author Martin Odersky went on to write Scala which sports recursive data types ...

WebL is an Oberon derivative that was specially designed to process web documents, people usually associate it with Modula-3 since some of the same people worked on both systems at the Digital/Compaq research labs and WebL was sometimes shipped with the M3 system, but the ideas behind and the basis for WebL came from the Oberon group at ETH although the actual implementation is in Java. HP later renamed WebL as the not very search engine friendly "Web Language" or "HP Web Language". WebL was mostly notable due to the fact that in its day (around the turn of the century) it managed to outperform similar commercial toolkits and was much more compact as well.

OS/2 implementations of Oberon

OS/2 text & programmers editors with Oberon support

DOS implementations 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

Implementations that run under Java

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

Publications

Component Pascal
WebL

on Top of Another] - In PDF format.

Mona

Classic EDM/2 articles

Local articles

Tutorials and other learning material

Standards