u6a/README.md

53 lines
1.5 KiB
Markdown

# u6a
[![Travis CI](https://travis-ci.com/esolangs/u6a.svg)](https://travis-ci.com/esolangs/u6a)
[![Codecov](https://codecov.io/gh/esolangs/u6a/branch/master/graphs/badge.svg)](https://codecov.io/gh/esolangs/u6a)
[![LICENSE](https://img.shields.io/badge/licence-GPLv3-blue.svg)](LICENSE)
Implementation of Unlambda, an esoteric programming language.
## Description
The u6a project provides a bytecode compiler and a runtime system for the [Unlambda](http://www.madore.org/~david/programs/unlambda/) programming language.
Ideas behind this implementation can be found [here](https://github.com/esolangs/u6a/wiki/Developer's-Notes-on-Implementing-Unlambda).
## Getting Started
Building:
```bash
# (If not already) Install the required build tools.
sudo apt install build-essential automake
# (If you want to run tests) Install DejaGnu.
sudo apt install dejagnu
# Generate configuration script.
autoreconf --install
# Execute configuration script with desired options.
./configure --prefix=$HOME
# Compile source code and generate executables.
make
# (Optional) Run tests.
make check
# (Optional) Install executables and man pages.
make install
```
Usage:
```bash
# Compile an Unlambda source file into bytecode.
u6ac -o foo.unl.bc foo.unl
# Execute the bytecode file.
u6a foo.unl.bc
```
See [**u6ac**(1)](man/u6ac.1) and [**u6a**(1)](man/u6a.1) man pages for details.
## Future Plans
* Interactive debugger: `u6adb`
* More compile-time optimizations
* More test cases
* LLVM backend for `u6ac`