oberonc
renjin
oberonc | renjin | |
---|---|---|
7 | 5 | |
140 | 506 | |
- | 0.0% | |
4.1 | 0.0 | |
about 1 month ago | 7 months ago | |
Modula-2 | R | |
MIT License | GNU General Public License v3.0 only |
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
renjin
-
Ask HN: Why are there no traditional language compilers that target the JVM?
There is the GraalVM Python Runtime, Renjin GCC-Bridge (for C, C++, R)...
I feel like all of this kind of exists but it's quite esoteric "non-standard stuff" and not necessarily something sane people want in production.
https://github.com/bedatadriven/renjin/tree/master/tools/gcc...
https://www.graalvm.org/python/
-
OpenJDK Proposes Project Galahad to Merge GraalVM Native Compilation
It'll help build cross-platform desktop applications. In theory, it'll mean hooking the build process up to a GitHub action to build platform-specific binaries, such as my FOSS KeenWrite Markdown editor[0], without having to have a copy of every operating system.
To my knowledge, cross-compiling "native" Linux and Windows binaries using Java requires duct tape, chewing gum, and warp-packer.[1]
GraalVM isn't a panacea, though.[2] For example, GraalVM cannot compile Renjin, a pure Java R interpreter, so you have to switch from Renjin to FastR. Switching isn't trivial.
[0]: https://github.com/DaveJarvis/keenwrite
[1]: https://dave.autonoma.ca/blog/2020/06/29/write-once-build-an...
[2]: https://github.com/bedatadriven/renjin/issues/564
- Ask HN: Any alternative to Java (OOP) which has the same ecosystem?
-
How this sub treats Java ...
I just wanted to mention that C compilers exist for the JVM.
- Why it is that C++ can be compiled to JavaScript bytecode that is WebAssembly (using Emscripten), but it cannot be compiled to Java bytecode?
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.
sjPlot - sjPlot - Data Visualization for Statistics in Social Science
wasm.cljc - Spec compliant WebAssembly compiler, decompiler, and generator
llr - Lisp-like-R: A clojure inspired lisp that compiles to R in R
Oberon07ru - Modification for original Oberon-07 of Anton Krotov
lljvm - Low Level Java Virtual Machine
A2OS - Unofficial mirror of the ETH A2 repository
AECforWebAssembly - A port of ArithmeticExpressionCompiler from x86 to WebAssembly, so that the programs written in the language can run in a browser. The compiler has been rewritten from JavaScript into C++.
asmble - Compile WebAssembly to JVM and other WASM tools
ZIO - ZIO — A type-safe, composable library for async and concurrent programming in Scala
THM-Oberon
tracer - Graal based x86 interpreter with separate execution trace analyzer