Real Brainfuck
Jump to navigation
Jump to search
Real Brainfuck is a brainfuck variant that operates on the realvalued range {0, 1}. The tape starts with all cells set to 0.5. It also has a stack. This is a more usable version of an esolang i designed in the past.
Instructions
It has the following instructions:
Instruction  Explanation 

< 
Move data pointer left on tape 
> 
Move data pointer right on tape 
0 
Set current cell c to (c + 0) / 2 
1 
Set current cell c to (c + 1) / 2 
N 
Set current cell c to 1  c 
[ 
Randomly choose between 0 and 1 with probability c. if zero jump past matching ]

] 
Randomly choose between 0 and 1 with probability c. if not zero jump back to matching [

^ 
Push cell data to stack 
V 
Pop item from stack to current cell 
& 
Pops top two items on the stack, multiplies them together, and pushes the result back 
X 
Pops top two items on the stack, averages them together, and pushes the result back 
, 
Obtains realvalued or binary input from an implementationdependent source and sets the cell to that value 
. 
Outputs current real value 
q 
Outputs either 0 or 1 with probability c 
Real Brainfuck 2 Variant: operates on all complex real numbers. It has support for abnormal probabilities and the following additional Instructions:
Instruction  Explanation 

+ 
c = c + 1 
 
c = c  1 
; 
c = cth root of c 
\ 
pop two items from stack, a & b, and push c: c = loga(b) 
/ 
c = sin(c) 
z 
c = c ^ pi 
: 
pop two items from stack, a & b, and push c: c = a ^ b 
f 
c = c ^^ 2 (c tetrate 2) 
e 
set cell to transcendental number e 
p 
set cell to transcendental number pi 
! 
c = c! (multiplication factorial) 
? 
c = c? (addition factorial) 
$ 
c = c$ (exponential factorial) 
{ 
begin ()infinite loop (finishes in finite time, hyperloop) 
} 
end ()infinite loop (finishes in finite time, hyperloop) 
Examples
Cat program
The following numeric cat may randomly terminate for an input less than one (1.0):
,.[,.]
Truthmachine
A truthmachine is implemented in this program:
,.[.]
Multiples of π (pi)
This program prints the first five multiples of constant π (pi):
+++++ >+z <[>.+<]
Interpreter
 Common Lisp implementation of a subset of the Real Brainfuck programming language. While both real and complexvalued tape cells are supported, certain more complex operations, in particular the factorial functions, retain the more common integer behavior.