Oberon No-cost implementations of Oberon (the language) and Oberon (the operating system) can be found on the Internet (several are from ETHZ itself).
Oberon-2 A few changes were made to the first released specification. For example,
object-oriented programming (OOP) features were added, the FOR loop was reinstated. The result was
Oberon-2. One release, named
Native Oberon which includes an operating system, and can directly boot on
IBM PC compatible class hardware. A
.NET implementation of Oberon with some added minor .NET-related extensions was also developed at ETHZ. In 1993, an ETHZ
university spin-off company brought a dialect of Oberon-2 to the market named
Oberon-L. In 1997, it was renamed
Component Pascal. Oberon-2 compilers developed by ETH include versions for
Microsoft Windows,
Linux,
Solaris, and
classic Mac OS. Implementations from other sources exist for some other operating systems, including
Atari TOS and
AmigaOS. There is an Oberon-2
Lex scanner and
Yacc parser by Stephen J Bevan of Manchester University, UK, based on the one in the
Mössenböck and Wirth reference. It is at version 1.4. Other compilers include Oxford Oberon-2, which also understands Oberon-07, and Vishap Oberon. The latter is based on Josef Templ's Oberon to
C language
source-to-source compiler (transpiler) named Ofront, which in turn is based on the OP2 Compiler developed by Regis Crelier at ETHZ.
Oberon-07 Oberon-07, defined by Niklaus Wirth in 2007 and revised in 2008, 2011, 2013, 2014, 2015, and 2016 is based on the original version of Oberon rather than Oberon-2. The main changes are: explicit numeric conversion functions (e.g., FLOOR and FLT) must be used; the WITH, LOOP and EXIT statements were omitted; WHILE statements were extended; CASE statements can be used for type extension tests; RETURN statements can only be connected to the end of a function; imported variables and structured value parameters are read-only; and, arrays can be assigned without using COPY. Oberon-07 compilers have been developed for use with many different computer systems. Wirth's compiler targets a
reduced instruction set computer (RISC) processor of his own design that was used to implement the 2013 version of the
Project Oberon operating system on a Xilinx
field-programmable gate array (FPGA) Spartan-3 board. Ports of the RISC processor to FPGA Spartan-6, Spartan-7, Artix-7 and a RISC emulator for Windows (compilable on Linux and
macOS, and binaries available for Windows) also exist. OBNC compiles via C and can be used on any Portable Operating System Interface (
POSIX) compatible operating system. The commercial Astrobe implementation targets STM ARM Cortex-M0, M3, M4, M7 and Raspberry Pi RP2040 and RP2350 microcontrollers. The Patchouli compiler produces 64-bit Windows binaries. Oberon-07M produces 32-bit Windows binaries and implements revision 2008 of the language. Akron's produces binaries for both Windows and Linux. OberonJS translates Oberon to
JavaScript. There is online IDE for Oberon. oberonc is an implementation for the
Java virtual machine.
Active Oberon Active Oberon is yet another variant of Oberon, which adds objects (with object-centered access protection and local activity control), system-guarded assertions, preemptive priority scheduling and a changed syntax for methods (named
type-bound procedures in Oberon vocabulary). Objects may be active, which means that they may be threads or processes. Further, Active Oberon has a way to implement operators (including overloading), an advanced syntax for using arrays (see OberonX language extensions and Proceedings of the 7th Joint Modular Languages Conference 2006 Oxford, UK), and knows about
namespaces. The operating system
A2 (formerly
Active Object System (AOS), then
Bluebottle), especially the
kernel, synchronizes and coordinates different active objects. ETHZ has released
Active Oberon which supports active objects, and the operating systems based thereon (Active Object System (AOS), Bluebottle, A2), and environment (JDK, HTTP, FTP, etc.) for the language. As with many prior designs from ETHZ, versions of both are available for download on the Internet. As of 2003, supported
central processing units (CPUs) include single and dual core
x86, and
StrongARM.
Related languages Development continued on languages in this family. A further extension of Oberon-2 was originally named Oberon/L but later renamed to
Component Pascal (CP). CP was developed for Windows and
classic Mac OS by Oberon microsystems, a commercial spin-off company from ETHZ, and for .NET by
Queensland University of Technology. Further, the languages
Lagoona and
Obliq carry Oberon methods into specialized areas. Later .NET development efforts at ETHZ focused on a new language named
Zonnon. This includes the features of Oberon and restores some from Pascal (enumerated types, built-in IO) but has some syntactic differences. Other features include support for active objects, operator overloading, and exception handling. Oberon-V (originally named Seneca, after
Seneca the Younger) is a descendant of Oberon designed for numerical applications on
supercomputers, especially vector or
pipelined architectures. It includes array constructors and an ALL statement. ==See also==