All Projects → zetavm → Zetavm

zetavm / Zetavm

Licence: bsd-3-clause
Multi-Language Platform for Dynamic Programming Languages

Programming Languages

language
365 projects

Projects that are alternatives of or similar to Zetavm

go-jdk
Run JVM-based code in Go efficiently
Stars: ✭ 61 (-89.7%)
Mutual labels:  vm, interpreter, jit
neos
Language agnostic scripting engine with a custom bytecode JIT
Stars: ✭ 36 (-93.92%)
Mutual labels:  vm, jit, jit-compiler
RSqueak
A Squeak/Smalltalk VM written in RPython.
Stars: ✭ 78 (-86.82%)
Mutual labels:  vm, interpreter, jit
Fake
嵌入式脚本语言 Lightweight embedded scripting language
Stars: ✭ 172 (-70.95%)
Mutual labels:  jit, jit-compiler, interpreter
kcs
Scripting in C with JIT(x64)/VM.
Stars: ✭ 25 (-95.78%)
Mutual labels:  vm, jit, jit-compiler
interp
Interpreter experiment. Testing dispatch methods: Switching, Direct/Indirect Threaded Code, Tail-Calls and Inlining
Stars: ✭ 32 (-94.59%)
Mutual labels:  vm, interpreter
jitm
JITM is an automated tool to bypass the JIT Hooking protection on a .NET sample.
Stars: ✭ 27 (-95.44%)
Mutual labels:  jit, jit-compiler
RISVM
A low overhead, embeddable bytecode virtual machine in C++
Stars: ✭ 21 (-96.45%)
Mutual labels:  vm, interpreter
Enso Archive
Looking for Enso, the visual programming language? ➡️ https://github.com/enso-org/enso
Stars: ✭ 305 (-48.48%)
Mutual labels:  jit, interpreter
Eval5
A JavaScript interpreter written in TypeScript - Support ES5
Stars: ✭ 281 (-52.53%)
Mutual labels:  interpreter, vm
Moarvm
A VM with adaptive optimization and JIT compilation, built for Rakudo
Stars: ✭ 537 (-9.29%)
Mutual labels:  jit, vm
warpy
WebAssembly interpreter in RPython
Stars: ✭ 54 (-90.88%)
Mutual labels:  interpreter, jit
Corium
Corium is a modern scripting language which combines simple, safe and efficient programming.
Stars: ✭ 18 (-96.96%)
Mutual labels:  interpreter, jit-compiler
SandboxJS
Safe eval runtime
Stars: ✭ 18 (-96.96%)
Mutual labels:  vm, interpreter
retro12
This repo is retired. See http://forthworks.com:8000/
Stars: ✭ 18 (-96.96%)
Mutual labels:  vm, interpreter
Awesome Graal
A curated list of awesome resources for Graal, GraalVM, Truffle and related topics
Stars: ✭ 302 (-48.99%)
Mutual labels:  jit, interpreter
Vm.js
Javascript 解释器. Javascript Interpreter
Stars: ✭ 343 (-42.06%)
Mutual labels:  interpreter, vm
Passerine
A small extensible programming language designed for concise expression with little code.
Stars: ✭ 341 (-42.4%)
Mutual labels:  interpreter, vm
Tcl
The Tcl Core. (Mirror of core.tcl-lang.org)
Stars: ✭ 342 (-42.23%)
Mutual labels:  jit-compiler, interpreter
Enso
Hybrid visual and textual functional programming.
Stars: ✭ 5,238 (+784.8%)
Mutual labels:  jit, interpreter

ZetaVM

Build Status Build status Gitter chat

Please note that ZetaVM is currently at the early prototype stage. As such, it is incomplete and breaking changes may happen often.

Requirements:

  • GNU Make
  • GCC 5.4+ (linux) or clang (OSX), or cygwin (Windows)
  • Optional: autoconf and pkg-config, if needing to edit the configure file
  • Optional: sdl2, if wanting to use audio and graphics capabilities
  • Optional: Python 2 is needed to run the benchmark.py script

Installation

# Clone this repository
git clone [email protected]:maximecb/zetavm.git

# Run the configure script and compile zetavm
# Note: run configure with `--with-sdl2` to build audio and graphics support
cd zetavm
./configure
make -j4

# Optionally run tests to check that everything works properly
make test

Basic Usage

# To run programs, pass the path to a source file to zeta, for example:
./zeta benchmarks/fib.pls -- 29

# To start up the Plush REPL (interactive shell),
# you can run the Plush language package as a program:
./zeta lang/plush/0

About ZetaVM

ZetaVM is a Virtual machine and JIT compiler for dynamic programming languages. It implements a basic core runtime environment on top of which programming dynamic languages can be implemented with relatively little effort.

Features of the VM include:

  • Built-in support for dynamic typing

  • Garbage collection

  • JIT compilation

  • Dynamically growable objects (JS-like)

  • Dynamically-typed arrays (JS/Python-like)

  • Integer and floating-point arithmetic

  • Immutable UTF-8 strings

  • Text-based code and data storage format (JSON-like)

  • First-class stack-based bytecode (code is data)

  • Built-in graphical and audio libraries

  • Coming soon: built-in package manager

Zeta image files (.zim) are JSON-like, human-readable text files containing objects, data and bytecodes to be executed by ZetaVM. They are intended to serve as a compilation target, and may contain executable programs, or libraries/packages.

More Information

A recording of a talk about ZetaVM given at PolyConf 2017 is available.

For more information, see the documentation in the docs directory:

There are also a few blog post about Zeta and its design.

For additional questions and clarifications, open a GitHub issue and tag it as a question, or join the ZetaVM Gitter chat.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].