REBEL

From Esolang
Jump to navigation Jump to search
This article is not detailed enough and needs to be expanded. Please help us by adding some more information.

REBEL stands for Regular Expression Based Esoteric Language. REBEL is a declarative programming language that works by iteratively replacing substrings.

A program in REBEL consists of an initial state and a list of regular expression substitutions, separated by slash characters:

initial state/RE/RHS/RE/RHS/...

where RE is a regular expression and RHS is the right hand side that is substituted if that RE matches. Special constructs $< and $> in the RHS allow for input and output respectively.

The program execution is deterministic: at each step the first possible substitution is performed on the string, until no substitution is possible.

Computational class

The trivial possibility of translation from any deterministic Thue program into REBEL gives a proof that REBEL is Turing-complete.

External resources

Specification