Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cachehash/bfdc
bfdc is an optimizing brainfuck compiler/interpreter
https://github.com/cachehash/bfdc
brainfuck brainfuck-compiler brainfuck-interpreter c golang optimizing
Last synced: 2 months ago
JSON representation
bfdc is an optimizing brainfuck compiler/interpreter
- Host: GitHub
- URL: https://github.com/cachehash/bfdc
- Owner: cachehash
- License: gpl-3.0
- Created: 2018-03-22T00:21:53.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2020-03-08T06:23:12.000Z (almost 5 years ago)
- Last Synced: 2024-04-24T16:14:47.563Z (9 months ago)
- Topics: brainfuck, brainfuck-compiler, brainfuck-interpreter, c, golang, optimizing
- Language: C
- Homepage:
- Size: 148 KB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- AwesomeInterpreter - bfdc
README
# bfdc
This brainfuck compiler is a bfd... or at least it thinks of itself that way. The main emphasis of bfdc is speed, but it tries to provide features that don't bog it down too much.# Overview
bfdc is an optimizing compiler/interpreter. This project emphasizes speed so optimizations are done before the interpreter is invoked and there is little effort to check if the program being interpreted has stepped outside of the legal memory region. However if this causes a crash the interpreter will let you know, not the compiled code however.# Usage
```Text
Usage: ./bfdc [OPTION]... FILE-i, --interpret interpret the brainfuck code specified in FILE
-t, --traverse interpret the parse tree used for compilation instead of compiling
-j, -d, --jit, --dynarec use dynamic recompilation to run the program
-o, --output=FILE output name for the compiled brainfuck
-O, --optimize=NUM optimization level
-c, --num-cells=NUM number of cells to use
-C, --cell-type=TYPE data type to use for cells
-E, --eof=TYPE format for EOF to use
-h, --help display this help textExamples:
./bfdc -i hello.b interpret the contents of hello.b
./bfdc hello.b -o hello.c compile hello.b and output hello.c
```