u6a/README.md

1.3 KiB

u6a

license

Implementation of Unlambda, an esoteric programming language.

Description

The u6a project provides a C implementation of the Unlambda programming language, where Unlambda source code can be compiled into bytecode and executed in a virtual machine.

Ideas behind this implementation can be found here.

Requirements

  • A POSIX-compliant operating system
  • GNU Autotools
  • GNU Make
  • A C compiler (with C99 support)

Build

# (If not already) Install the required build tools.
sudo apt install build-essential automake

# Generate configure files.
autoreconf --install

# Run configure script with desired options.
./configure --prefix=$HOME

# Compile sources and generate executables.
make

# (Optional) Run tests.
make check

# (Optional) Install executables and man pages.
make install

Usage

First, compile an Unlambda source file into bytecode.

u6ac -o foo.unl.bc foo.unl

Then, execute the bytecode file with the interpreter.

u6a foo.unl.bc

See u6ac(1) and u6a(1) man pages for details.

TODOs

  • u6adb - An interactive debugger for Unlambda
  • More compile-time optimizations