Skip to content

Latest commit

 

History

History
44 lines (30 loc) · 2.25 KB

README.md

File metadata and controls

44 lines (30 loc) · 2.25 KB

obc

Build and Test Status

An Oberon-07 to LLVM IR compiler.

LLVM IR code emitted by obc can then be compiled to native binary modules for a number of different architectures by using the LLVM llc compiler and the LLVM lld linker. Possible target architectures for LLVM's backend stack include AArch64, ARM, PowerPC, RISC-V, x86_32, and x86_64.

WebAssembly modules are also a possible target when the WebAssembly port of lld is used.

Oberon-07 is one of the amazing programming languages created by Prof. Niklaus Wirth, who unfortunately, passed away on January 1st. 2024. A summary of the projects of Prof. Niklaus Wirth between 1962 and 1999 can be found here.

On Oberon

Oberon+

obc is only my first take on writing a compiler and most probably nothing too useful will come out of it.

To get really serious about Oberon and its future, take a GOOD look at Oberon+.

Oberon - the Uranus' moon, not the language - in the news:

"This has led NASA scientists to conclude that four of Uranus’ largest moons—Ariel, Umbriel, Titania, and Oberon —probably contain water oceans below their icy crusts. These oceans are likely dozens of kilometers deep and probably fairly salty in being sandwiched between the upper ice and inner rock core. These inner cores are likely producing enough heat from radioactive decay to create layers of liquid water, the scientists say. Additionally, chlorides, as well as ammonia, are likely abundant in the oceans of the icy giant’s largest moons and may be helping to keep them unfrozen."

from ArsTechnica.

Build

To build obc, CMake version 3.20 or later is required.