--- id: compliance title: BF Compliance --- BF is an [underspecified language](https://en.wikipedia.org/w/index.php?title=Brainfuck&oldid=1139432166#Portability_issues). Most BF programs just work, but this page documents implementation decisions. ## Cell Size bfc considers cells to be single bytes, and arithmetic wraps around. As a result, `-` sets cell #0 to 255. ## Array Size bfc provides 100,000 cells. Accessing cells outside of the range #0 to #99,999 is explicitly undefined. It will probably segfault. bfc will generate a warning if it can statically prove out-of-range cell access. ## Brackets bfc requires brackets to be balanced. `+[]]` is rejected with a syntax error, unlike some BF interpreters. ## Source Code bfc assumes input files are valid UTF-8. ## Sample Programs Daniel B Cristofani has [an excellent selection of BF programs](http://www.hevanet.com/cristofd/brainfuck/), including [several programs explicitly testing implementation robustness](http://www.hevanet.com/cristofd/brainfuck/tests.b). [The Brainfuck Archive](http://esoteric.sange.fi/brainfuck/) also includes a large range of interesting BF programs.