/GVM

GVM is a simple virtual machine and runtime environment for scripting languages. It provides a pluggable type system, garbage collection and native object bridge.

Primary LanguageJava

GVM

The GVM is a small and efficient virtual machine that executes the GVM bytecode language. It is a stack based architecture.

The compiler and VM are fully written in Java and as a separate project, a fully working programming language is provided for educational purposes. See https://github.com/geertvos/gs-lang

History

The source code of this project was written by Geert Vos around 2009. It was rediscovered later and imported into this GitHub repo.

Language features:

  • Pluggable type system
  • Basic arithmetic
  • Objects
  • Functions (first class citizens)
  • Control flow (while, for, break, continue)
  • Exception handling
  • Native bridge
  • Native callbacks
  • Code execution inside existing context
  • Multithreading (multiplexing on a single native thread, no support for blocking native calls)

Building:

mvn clean install

java -jar ./target/gvm-0.0.1-SNAPSHOT-jar-with-dependencies.jar