From e778f818c2ddf0bd9032185a9d4040df5705c4cc Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Tue, 3 Dec 2024 04:23:39 +0000 Subject: Update README --- README | 33 +++++++++++++++++++++++++++------ 1 file 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. -- cgit v1.2.3-13-gbd6f