Skip to content

kirillzhosul/gofra

Repository files navigation

Gofra [beta]

A Stack-based compiled programming language.

The project is made not for competing with other languages, rather it is another incomplete language almost same like others.

Compiler Testkit



Overview

Gofra is a concatenative (stack-based) programming language that compiles to native code. Programs are written using Reverse Polish notation, where operations follow their operands (e.g 2 + 2 is 2 2 +).

Pong Example Screenshot

Quick start

Here's a simple "Hello, World!" example:

include "std.gof"

func void main
    "Hello, World!" println
end

Features

  • Native - Compiles to native machine code
  • C-like - Close to C, but has a few more high-level abstraction (for in, type generics)
  • C FFI - Seamless integration with C-FFI libraries
  • Low-level - Write unsafe, low-level code with direct memory access
  • Type System - Validate types at compile time, has compile-time warnings (Generics supports, typechecker)
  • Library - By default has support for math, random, network and other libraries

More complex examples

#include "std.gof"

// Print each array element
var xs = ["Hello", " ", "world!", "\n"]

func void main[]
    for x in xs do
        x ?> print
    end
end

Showcase

Platform Support

ARCH OS Support Tested hardware
Aarch64 Darwin ✅* M1, MacOS Tahoe 26.1
Aarch64 Windows
Aarch64 Linux
x86_64 Linux ❗**
x86_64 Darwin
x86_64 Windows ‼️***
WASM - ❌****

* Main workflow of development, has all features
** Linux x86_64 is not completely finished and has bugs and incomplete features
*** Windows x86_64 is not implemented, but has general wrappers for system calls and possibly can compiled with headache
**** WASM is coming soon, after finished top-three platforms

Pre requirements

Before installing Gofra, ensure you have the following tools available system-wide:

  • Python >3.12.x
  • GNU/Mach-O Linker (ld) - For linking compiled objects
  • Assembler (as) - Typically included with Clang LLVM compiler

Installation

For full installation steps, please visit Installation page.

Gofra is distributed as single Python-based toolchain. To install:

(Step 1): Install toolchain

pip install gofra

(Step 2): Verify Installation

gofra --help

More information and next steps

Please refer to actual documentation!

About

Concatenative (stack based) compiled (native) programming language

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors 3

  •  
  •  
  •