GraalVM

__GraalVM__ is an extension of the Java virtual machine to support more languages and execution modes. Here we document our research into the use of GraalVM for the Commons Server and Fedwiki Browser projects.

- Serverless Native Java Functions using GraalVM and Fn Project - medium - GraalVM on wikipedia

# Proposal

The idea is to experiment with running GraaVM locally as a Fedwiki server. Should this work out we can aim to move towards a fully decentralised Commons Server

# Features

GraalVM is a universal virtual machine for running applications written in: - JavaScript - Python - Ruby - R (programming language) - JVM-based languages like Java, Scala, Kotlin - LLVM-based languages such as C and C++

# Implement your own language

Graal makes it easy to optimise a language that you implement, and to make it available in a polyglot context. Given an abstract syntax tree created in a language like Java, you can use Graal to compile the language down to bitecode so that it runs within the GraalVM.

The SimpleLanguage example uses Coco to generate an abstract syntax tree from code (I think) - graalvm.org

- Let’s Build A Simple... - ruslanspivak.com - data structures - How... - stackexchange.com - Abstract syntax tree -... - wikipedia.org - Implement Your Language for... - graalvm.org - Implement Your Language for... - graalvm.org - graalvm/simplelanguage: A... - github.com - Home - API Connect - ibm.com

# So what is it?

Graal is a native code generator, just like LLVM. You give it some intermediate model of executable code, and then you get native code for processors. And of course it is written in Java - medium

Once you have a code generator, you can do many other things such as a compiler to native code for some language, you can do a JIT (just-in-time) compiler for another language, etc.

# Alternative Polyglot Platforms

# Limitations

- Full list of limitations - github

# See also