Self-modifying Brainfuck

Self-modifying Brainfuck, also known as SMBF, is a variant of brainfuck by Simon Howard, which allows a program to modify its own source code. The program code is placed in the data array, and the data pointer starts at the byte immediately after the last instruction in the code.

Language overview
SMBF operates on an array of memory cells, also referred to as the tape, each initially set to zero. There is a pointer, initially pointing to the first memory cell. The commands are:

All characters other than  are ignored if executed but may be accessed, modified, or printed as part of the source code on the tape.

Examples
This prints  and then blocks for user input:

<.<.<.<.<.<.<.<.<.<.<.<.<.!dlroW ,olleH

This will print  only in the Python interpreter (otherwise nothing), because it dynamically creates code on the tape outside of the initial program code:

>>++++++[<<++++++++++>++++++++>-]<--<1

External resources

 * Home page with implementation
 * Online interpreter from original implementation
 * Python interpreter by User:mbomb007. Executes dynamic code, unlike the original interpreters.