Oberon
ヴィルトが2007年に定義したのがOberon-07である。Oberon-2ではなく本来のOberonに基づいており、2011年に仕様が改訂されている。主な変更点は、数値型の明示的変換関数(FLOOR、FLTなど)を必ず使うようにした点、LOOP文とEXIT文を排除した点、WHILE文が拡張された点、RETURN文が関数の最後にのみ存在するようにした点、インポートされた変数や構造のある引数がリードオンリーとなった点、配列をCOPY文を使わずに代入できるようになった点などである。
コンパイラの実装としては、32ビットWindows版 Oberon-07M、32ビットARM版、Cortex-M3マイクロコントローラ版、ヴィルトが設計したRISCプロセッサを Xilinx FPGA Spartan-3 ボードに実装したもので動作する版がある。
プロシージャの引数に関して2つのモードが可能である。値渡し(Call by value)では引数に式を使用でき、式を評価した結果の値がプロシージャに渡される。参照渡し(Call by reference)では変数を渡すことだけが許されるので、その変数の値はプロシージャ内で変更される可能性がある。参照渡しにする場合、プロシージャの定義で引数に VAR という予約語を付与する。
プログラミング言語のOberonは、PascalやModula-2を生み出したニクラウス・ヴィルトがチューリッヒ工科大学のチームと共に1986年に開発した。OSのOberonの開発の一環として開発されたもので、Modula-2をシステム実装言語として使用しようとしたとき安全な型拡張機能がないことから新たに設計された。当初から教育目的で言語処理系とOSの詳細を書籍の形で出版する計画だった。そのため新言語は必要な基本機能のみを備えた設計になった。
文法はModula-2によく似ているが、かなり小さくなっている。その単純さから、コンパイラの生成するコードも小さく効率的である。言語仕様はEBNF1ページほどで記述できる。コンパイラも4000行ほどで記述されていた。Modula-2との大きな違いとしてガベージコレクションを備えている。
Oberonと後継のOberon-2は様々なOS上に移植されており、Javaプラットフォーム上でも動作する。OberonのソースコードからJavaのソースコードを生成する方式とJava-VM向けバイトコードを生成する方式がある。