Skip to content
Interpreted language and bytecode VM of my own design written in Rust
Rust
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
benches
examples
src
testsuite
.gitignore
Cargo.toml
README.md
build.rs

README.md

Esta

CircleCI GitHub code size in bytes

Esta is a gradually typed, interpreted language and virtual machine implementation of my own design written in Rust

Interpreted: .est source code is compiled into byte code (simple assembly instructions) and run on the Esta VM.

Gradually Typed: The Esta Interpreter can infer variable type (e.g.):

var a: num = 4;     // Explicitly declare a is an int

var c = a + b;      // Since c and b have unknown types, they adopt a's type

Syntax

Esta's syntax is an LR(1) grammar that takes most of it's ideas from the C-family of languages. It is most similar to JavaScript and Go. Here is an example snippet of code:

fun multiply(a, b) {
    if a <= 0 {
        return b;
    } else {
        return b + multiply(a - 1, b);
    }
}

print(multiply(3, 4) == 12);

Blog Posts

Development

You are welcome to check the project out and try some of the demos provided.

WARNING: Please note that at it's current state, Esta is pre-alpha and is experiences radical, breaking changes daily.

git clone https://github.com/epellis/esta.git
cd esta
cargo build
RUST_LOG=esta=debug cargo run demos/hello.est

You can also measure performance by evaluating the Fibonacci Sequence using a naive recursive O(n^2) algorithm.

cargo bench

Deployment

WIP: Installer coming soon

cargo run --release my_program.est
You can’t perform that action at this time.