Enema

Enema is an esoteric programming language in which most instructions can be redefined. It was inspired by the Unefunge language (one-dimensional version of Befunge).

Language overview
Programs in Enema consist of sequence of single-character instructions. Execution starts from the first instruction and continues until error occurrs (i.e. undefined word is executed). When execution reaches end of program it wraps back to the beginning. Program memory is separated from data memory, so programs cannot modify themselves in other ways than redefinition of instructions.

All operations are performed on stack. Stack items have size of single machine word (typically 32 bits).

Program has access to data memory. It consists of cells of the same size as stack items. Memory addressing is done modulo its size, i.e. cell with address 7 is the same as cell memory_size+7 or -7.

Instruction set
Enema has two categories of keywords - regular keywords and special constructs. Special constructs cannot be redefined and are treated more or less like preprocessor directives in C/C++. Regular keywords perform actual operations and can be redefined using  operator.