Skip to content

AzraelSec/Cube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cube Programming Language

Cube is a simple custom interpreted programming language implemented in Go, following the principles outlined in the book "Writing an Interpreter in Go" by Thorsten Ball. This project was designed to help me deeper understanding how interpreters work.

Getting Started

Prerequisites

Before you begin, make sure you have Go installed on your system. You can download and install Go from the official website.

Installation

Clone this repository to your local machine using:

git clone https://github.com/AzraelSec/cube.git

Change your current directory to the Cube project folder:

cd cube

Building the Interpreter

To build the Cube interpreter, run the following command:

make

This will generate two executables:

  • repl: A REPL interpreter to test the language instructions.
  • cube: A file content interpreter.

Usage

To run a Cube program, use the following command:

./cube filename.cb

Replace filename.cb with the path to the Cube script you want to execute.

Syntax

Cube has a simple and minimalistic syntax. Here are some basic features of the language:

  • Variables: Cube supports variable assignment and usage.
  • Arithmetic Operations: You can perform basic arithmetic operations (addition, subtraction, multiplication, division) in Cube.
  • Basic string manipulation: Cube supports strings comparison and basic concatenation using the == and + operators.
  • I/O builtins: You can use the print and read statement to display and read from console.
  • Conditional Statements: Cube supports if and if/else statements for basic conditional logic.
  • Functions and closures: Functions are first-class citizens in Cube, so you can assign them to variables, pass them to other functions, etc.

For a more detailed description of the language syntax, refer to the code and comments in the Cube interpreter source files.

Examples

Here's a simple Cube program that calculates the factorial of a given number and prints the result:

To run this program, save it to a file with the .cb extension and execute it using the Cube interpreter.

About

Damn simple and useless interpreted programming language, built from scratch using Go as the host language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published