Ground
A speedy platform for building cool software

Designed with an assembly-like syntax, Ground provides a clean, low-level foundation perfect for building your own highly-opinionated languages.

Download Source Code

About Ground

Ground is a programming language that draws inspiration from Assembly in its design, but includes higher-level features that make it easy to use and a robust foundation for building other languages. It is an interpreter that processes and interprets Ground instructions, making it quite fast and its syntax simple.

It's designed to have a similar purpose to the Java Virtual Machine, allowing anyone to write their own programming language that compiles to Ground code. It is an open-source project distributed under the GNU General Public License.

This program asks the user a question and responds based on their input, demonstrating basic I/O and conditional logic.

stdout "Do you like cheese? "
stdin &userin
equal $userin "yes" &condition
if $condition %7
stdlnout "That is sad"
jump %1
stdlnout "Awesome! I do too!"

Main Features of Ground

Simple Syntax

Ground is intentionally simple, with a small number of features to keep it easy to learn and speedy to run.

Super Speed

Ground code is faster than Python and JavaScript, and nearly as fast as C++ and Rust, despite being interpreted.

Tiny Interpreter

The interpreter is very small, containing only 1617 lines of code (and 405 lines of comments), and compiles in seconds.

Extensible

It's incredibly easy to write libraries for Ground in C, C++ or another language if it can compile to a shared library.

Install a package like this:

$ sudo dig install request
Downloading package request
Extracting package request
Success!

Dig package manager

Dig is Ground's package manager. It manages your external libraries simply and quickly.

All libraries are installed to /usr/lib/ground for quick access, however if required a portable install can be created.

Get Started with Ground

The Ground interpreter and Dig package manager are both open-source. Prebuilt packages are on the way sometime soon.

Note: The provided C++ source code needs to be compiled to run the interpreter.