Implementation of Unlambda, an esoteric programming language.
Go to file
CismonX ab03aa4eb7
initial commit
2020-01-30 18:11:10 +08:00
man initial commit 2020-01-30 18:11:10 +08:00
src initial commit 2020-01-30 18:11:10 +08:00
.gitattributes initial commit 2020-01-30 18:11:10 +08:00
.gitignore initial commit 2020-01-30 18:11:10 +08:00
.travis.yml initial commit 2020-01-30 18:11:10 +08:00
LICENSE initial commit 2020-01-30 18:11:10 +08:00
Makefile.am initial commit 2020-01-30 18:11:10 +08:00
README.md initial commit 2020-01-30 18:11:10 +08:00
configure.ac initial commit 2020-01-30 18:11:10 +08:00

README.md

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