Simon says brainfuck
Jump to navigation
Jump to search
Simon says brainfuck is an esolang created by User:None1,based on brainfuck, the only difference is that each line in the code should begin with "Simon says: "(without quotes, but with space in the end, case sensitive.), otherwise it will be ignored.
Turing completeness
Simon says brainfuck is of course Turing complete because brainfuck is.
Example Programs
Cat Program
Simon says: +[,.]
Note that the space in the middle is MANDATORY.
Hello World
Simon says: +++++++++[>++++++++<-]>.>++++++++++ Simon says: [>++++++++++<-]>+.+++++++..+++.>++++ Simon says: [>++++++++<-]>.<<<<+++++++++++++++.>>.+++.------.--------.
Interpreters
Python
def bf(code): tape=[0]*1000000 s1=[] s2=[] matches={} for i,j in enumerate(code): if j=='[': s1.append(i) if j==']': m=s1.pop() matches[m]=i matches[i]=m cp=0 p=0 while cp<len(code): if code[cp]=='+': tape[p]=(tape[p]+1)%256 if code[cp]=='-': tape[p]=(tape[p]-1)%256 if code[cp]==',': tape[p]=ord(sys.stdin.read(1))%256 if code[cp]=='.': print(chr(tape[p]),end='') if code[cp]=='<': p-=1 if code[cp]=='>': p+=1 if code[cp]=='[': if not tape[p]: cp=matches[cp] if code[cp]==']': if tape[p]: cp=matches[cp] cp+=1 d="" while 1: try: c=input() except: break if c.startswith('Simon says: '): d+=c bf(d)