summaryrefslogtreecommitdiff
path: root/README.md
blob: 0f8dc25b24bb97f43bd7200b2a3f557074ad05c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Skullfuck
=========
Skullfuck is a dead simple, non-optimizing compiler for Brainfuck, contained in a single C source file. It outputs binaries targeting amd64 Linux.

It depends on GNU Binutils, or any compatible implementation of `as` and `ld`.

A good explanation of the history and design behind the language can be found in [the Wikipedia article.](https://en.wikipedia.org/wiki/Brainfuck)


Undefined Behavior
------------------
The Brainfuck programming language is extremely limited in its specification, and some operations don't have a defined behavior - specifically, operations on an out-of-bounds data pointer are undefined. UB is allowed, but do not expect it to work equally on all platforms.


TODO
----
* *BSD targeted binaries.
* Automate test compilation/running.
* Static analysis to warn when undefined behavior has been detected.