aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2024-12-03 04:23:39 +0000
committerAryadev Chavali <aryadev@aryadevchavali.com>2024-12-03 04:30:16 +0000
commite778f818c2ddf0bd9032185a9d4040df5705c4cc (patch)
treeaa5cead4525fa6ff002e442187646424817fd727
parent2cbb2e9ffa75964b95d2e48c142f797352a0201a (diff)
downloadobf-e778f818c2ddf0bd9032185a9d4040df5705c4cc.tar.gz
obf-e778f818c2ddf0bd9032185a9d4040df5705c4cc.tar.bz2
obf-e778f818c2ddf0bd9032185a9d4040df5705c4cc.zip
Update README
-rw-r--r--README33
1 files changed, 27 insertions, 6 deletions
diff --git a/README b/README
index c32e195..0e112eb 100644
--- a/README
+++ b/README
@@ -1,17 +1,38 @@
- ______________________________
+ ___________________________
- OREO'S BRAINFUCK INTERPRETER
+ OREO'S BRAINFUCK COMPILER
Aryadev Chavali
- ______________________________
+ ___________________________
-Here is a simple brainfuck compiler written in C. Most of the code was
-written in 2023.
+Here is a simple brainfuck compiler/interpreter written in C. Most of
+the code was written in 2023, but the compiler code was written in 2024.
+
+
+Build instructions
+==================
+
+ A C compiler capable of compiling C11 is required. `clang' and `gcc'
+ have been tested. `yasm' and `ld' are required for `obc', but the
+ assembly transpile step should work.
Goals
=====
+ [X] Complete reference interpreter for brainfuck
- + [ ] Native compiler
+ + [X] Native compiler
+
+
+Notes
+=====
+
+ I cheat heavily to make the native compiler here; I'm not writing my
+ own ELF executables by hand (using `elf.h'). Instead I write valid
+ assembly code in a string buffer, then compile that via `yasm' and
+ `ld'.
+
+ It shouldn't be all that difficult to make a JIT from this point; just
+ translating the assembly snippets into machine code and embedding that
+ into an executable page.