Prelude

Prelude is an esoteric programming language created by Nikita Ayzikovsky in 2005. It uses several "voices", or "parts", each with its own stack, executing instructions in parallel. It is Turing-complete (it is trivial to compile Brainfuck into Prelude using just two voices).

Prelude is the ASCII representation of Fugue, which is the same language but using polyphonic music as source code.

Basics
A program is a set of instructions given for several "voices", one voice per line of text. Each voice has its own stack, initially containing an infinite supply of zeroes. Instructions given on the same column (i.e., for different voices but at the same time) are executed simultaneously. All stacks are updated atomically after the simultaneous instructions complete.

The actual type of numbers of the stack is left to the implementation, however it should allow negative numbers. The reference implementation uses signed integers of unlimited size.

Instructions
Anything else is treated as a nop.

and  do not have to be on the same line. It is an error to use both of them, or multiple instances of either, at the same time in different voices.

^ used in the bottom voice pushes the value from the top voice; v used in the top voice pushes the value from the bottom voice.

Formatting
Instructions for the second voice are given below the first, and so on. A line of code can be broken by placing a line with just a single asterisk after it.

External resources

 * - Modified Feb 22, 2007, to address some ambiguities
 * Interpreter in C
 * brainfuck to Prelude compiler
 * brainfuck to Prelude compiler