Built with Go — Zero Dependencies

Gor Programming Language

An interpreted language with JavaScript-like syntax, built entirely in Go's standard library. Closures, objects, arrays — everything you need.

Gor mascot

Zero Dependencies

Built entirely with Go's standard library. No external packages, no bloat — just pure Go powering a complete interpreter.

{}

JS-like Syntax

Familiar let/const declarations, fn functions, for loops, and if/else blocks. Easy to pick up.

λ

First-Class Functions

Full closure support with lexical scoping. Create counter factories, accumulators, and higher-order functions.

Objects & Arrays

Rich data structures with objects (key-value pairs) and arrays. Member access, index expressions, and nested structures.

Interactive REPL

Explore the language interactively with the built-in REPL, or run source files directly from the command line.

📈

AST Inspector

Built-in --ast flag outputs the Abstract Syntax Tree as JSON. Great for learning how interpreters work.

See Gor in Action

Clean, expressive syntax for algorithms, data structures, and functional patterns.

closure_counter.gor
# Counter factory using closures
fn makeCounter(start) {
    let count = start
    fn increment() {
        count = count + 1
        return count
    }
    return increment
}

let counter = makeCounter(0)
print(counter())   # 1
print(counter())   # 2
print(counter())   # 3

# Each counter has its own state
let other = makeCounter(10)
print(other())     # 11
print(counter())   # 4  (independent)

Quick Start

1

Clone & Build

git clone https://github.com/IWhitebird/Gor.git && cd Gor && make build

2

Run a File

./bin/gor examples/fibonacci.gor

3

Start the REPL

./bin/gor --repl

4

Inspect the AST

./bin/gor --ast examples/fibonacci.gor

hello.gor
# Hello World in Gor
print("Hello, World!")

# Variables
let name = "Gor"
const version = 1
print("Welcome to " + name)

# Functions
fn add(a, b) {
    return a + b
}
print(add(40, 2))