N. E. Wirth Language Compilers

This page documents Oberon compilers that comply with a language report of Niklaus Wirth. It does not document variants, e.g. Component Pascal, Oberon-2, unless those are treated as extensions.

Oberon-07 Compilers

Project Oberon
Wirth's reference platform since 2013, built with and including his compiler.
Chris Burrows fully complete (statically linked) compiler for the ARM, (CFB Software). Runs on Windows.
Oberon-07 compliant with the 2016 Report. Its benefit is an .exe available for Windows 64-bit. It does not appear to produce a Portable Executable, however. This was previously the AyaCompiler.
Oberon-07 to C translator.
Oberon-07 to Java bytecode compiler
Akron's Oberon-07/11 compiler
Open-source (GPL) compiler for Windows by Krotov Anton, noteable for generating binaries for other OSes. The following appears to be a patching project: https://github.com/prospero78/Oberon07ru. The original 0.7.2 page was here: https://sites.google.com/site/oberon07compiler/versii
Runs under Unix A2, and generates RISC objects that can be run with an accompanying emulator. See the Oberon Community Platform for more details on the Oberon systems (and compilers) from ETH Zürich.
An Oberon-07 to C, and other languages, translator. Goals appear to be different dialects of Oberon-07. Code comments and output are in Russian.

Oberon-07 Compilers compliant with an older Report

Vladislav Folts' (and contributors) Oberon-07 to JavaScript translator. Includes a separate mode for extensions (Eberon). Implements the 2015 Oberon Report (not dynamically loaded).
Oxford Oberon Compiler
A fairly portable compiler, runs on Windows, Debian and Debian derivatives (e.g. Ubuntu), macOS, and Raspberry Pi. It uses the Objective Caml runtime, but is statically linked. Though essentially an Oberon-2 compiler, version 3 includes flags with the intent of allowing a valid Oberon-07 program to compile and run correctly (but not strictly checked). Written against the 2013 Report.

Oberon-07 dormant

nickelsworth transpiler
The author indicates his work on this is done, unless others wish to contribute.
A minimal commercial, statically linked, (32-bit, by definition) shareware compiler from Russia, (Exact Programs). Implements classic Oberon-07 using the 2008 Report. Though the author has indicated his intent to provide an update, one has never been posted that can be found.


Implemented on ARM and FPGA between 1995 and 1999. Revised in 2007 which spawned Oberon-07.

Oberon-0 Compilers

Oberon-0 refers to the subset language since the 1996 edition of Compiler Construction. It was extended in the 2011 edition.

Classic Oberon Compilers (dormant)

The Oberon System v4
Also known as Linz Oberon. This is essentially the version of Oberon described in Reiser's book. Also see sf.net/p/oberon
This is a Linz Oberon fork for GNU/Linux with an Oberon-to-C compiler.
Oberon Script
Compiles to JavaScript.
Compiles to C

Previous compilers by N. E. Wirth

Chris Burrows Modula-2 page
PL0 compiler and interpreter from N. E. Wirth's Algorithms + Data Structures = Programs (1976).
CDC 6000 Pascal
Sources of the CDC Pascal compilers, hosted by Scott Moore.
Stanford Algol-W
August 1969 code of the extended Algol-W, by one of Wirth's collaborators. See AB 24, pg. 13-17, and AB 27 pg. 4-5.
Euler IV
Wirth's Euler Translator, March 1965, for the Burroughs B5500.