diff options
author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2024-12-03 04:23:39 +0000 |
---|---|---|
committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2024-12-03 04:30:16 +0000 |
commit | e778f818c2ddf0bd9032185a9d4040df5705c4cc (patch) | |
tree | aa5cead4525fa6ff002e442187646424817fd727 | |
parent | 2cbb2e9ffa75964b95d2e48c142f797352a0201a (diff) | |
download | obf-e778f818c2ddf0bd9032185a9d4040df5705c4cc.tar.gz obf-e778f818c2ddf0bd9032185a9d4040df5705c4cc.tar.bz2 obf-e778f818c2ddf0bd9032185a9d4040df5705c4cc.zip |
Update README
-rw-r--r-- | README | 33 |
1 files changed, 27 insertions, 6 deletions
@@ -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. |