oberonc
A2OS
oberonc | A2OS | |
---|---|---|
7 | 4 | |
140 | 48 | |
- | - | |
4.1 | 0.0 | |
about 1 month ago | over 1 year ago | |
Modula-2 | Modula-2 | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
oberonc
- Object-Oriented Programming in Oberon-2 [pdf]
-
A quick look at destination-driven code generation
This technique was also described by David R. Hanson in "Code Improvement via Lazy Evaluation", 1980 [1] and "Simple Code Optimizations", 1983 [2].
[0] https://github.com/lboasso/oberonc/blob/master/doc/Moe00b.pd...
-
Ask HN: Why are there no traditional language compilers that target the JVM?
The Oberon programming language is 37 years old. Since it is a memory safe language a compiler for the JVM can be written (with some workarounds), for example see the self-hosting compiler oberonc [0].
[0] https://github.com/lboasso/oberonc
- Oberon, Plan 9 and Inferno
-
Modula-2 and Oberon (2007) [pdf]
If you want to try out only the Oberon language, you might be interested in oberonc [0] an oberon-07 self-hosting compiler for the JVM. There are other several Oberon implementations for different platforms listed here[1]
[0] https://github.com/lboasso/oberonc
[1] http://oberon07.com/compilers.xhtml
- Project Oberon
-
The School of Wirth
When I benchmarked oberonc [0], an oberon-07 self-hosting compiler for the JVM, it took about 100 ms with a hot VM on a old Intel i5 @ 2.80GHz. That compiler follows the same one-pass compilation approach.
[0] https://github.com/lboasso/oberonc
A2OS
-
Oberon: The tiniest but richest FOSS HLL and OS you've never heard of
Because of pjmlp's hint I just looked into the repositories https://github.com/btreut/a2 and https://github.com/metacore/A2OS, but didn't find a coroutines module. I'm aware that Active Oberon (Patrik Reali, 2004) includes concurrency, but this is a different language than the one used for System 3.
-
Project Oberon
The Oberon channel has several videos of Oberon in action,
https://www.youtube.com/results?search_query=The+Oberon+Chan...
While Oberon was quite cool, people should also learn about its Xerox influence,
"Eric Bier Demonstrates Cedar"
https://www.youtube.com/watch?v=z_dt7NG38V4
Also dive into what happened afterwards, Oberon-2, Active Oberon, Zonnon,...
Active Oberon could be considered quite modern, also makes the distinction between safe and unsafe pointers, which improves the experience for low level coding.
https://github.com/metacore/A2OS
One of the best things about these systems is proving what systems programming with automatic memory management were capable of.
Given Oberon-2's influence on Go, maybe improving Fyne (https://fyne.io/fynedesk/) with something like gRPC for the dynamic experience, could be a possible sucessor.
-
Leveraging the Go Type System
A couple, you can start here to see how the Active Oberon based OS looked like,
https://www.progtools.org/article.php?name=oberon§ion=co...
Some links are broken now, because ETHZ no longer hosts the A2 site, however you can get the latest language report at http://cas.inf.ethz.ch/boards/2/topics/1
And the source code and old documents for the original A2 OS at github, https://github.com/metacore/A2OS
What are some alternatives?
SquirrelJME - SquirrelJME is a Java ME 8 Virtual Machine for embedded and Internet of Things devices. It has the ultimate goal of being 99.9% compatible with the Java ME standard.
oberon-riscv - Oberon RISC-V port, based on Samuel Falvo's RISC-V compiler and Peter de Wachter's Project Norebo. Part of an academic project to evaluate Project Oberon on RISC-V.
wasm.cljc - Spec compliant WebAssembly compiler, decompiler, and generator
a2 - Active Oberon System (AOS), aka A2, and Bluebottle OS
Oberon07ru - Modification for original Oberon-07 of Anton Krotov
oberon-compiler - N. Wirth's Project Oberon RISC compiler ported to Go.
asmble - Compile WebAssembly to JVM and other WASM tools
OfrontPlus - Oberon family of languages to C translator for ARM, x64 and x86 architectures
THM-Oberon
tracer - Graal based x86 interpreter with separate execution trace analyzer
OberonSystem - Modified version of the original from http://www.projectoberon.com/ for use with the Oberon IDE