/pyro

A dynamically-typed, garbage-collected scripting language.

Primary LanguageCBSD Zero Clause License0BSD

Pyro

Pyro is a dynamically-typed, garbage-collected scripting language implemented in C. This means that it lives in roughly the same neighbourhood in programming language space as languages like Python or Ruby.

def fib(n) {
    if n < 2 {
        return n;
    }
    return fib(n - 1) + fib(n - 2);
}

Pyro is a classic braces-and-semicolons language. If you've used any C-family language before you should find it instantly intuitive.

Getting Started

Pyro is an experimental language that's still under development — you should only write the control code for your pacemaker/anti-ballistic missile defence system in it if you're feeling particularly adventurous.

Design Goals

  • Legibility — Pyro code should be easy to read and understand.
  • Simplicity — Common problems should have simple solutions.
  • Elegance — A well-crafted tool should be a pleasure to use.

Internals

  • Pyro compiles source code into bytecode which it executes using a stack-based VM.
  • Pyro manages memory using a simple mark-and-sweep garbage collector.

License

Zero-Clause BSD (0BSD).