Example programs: • Hello world: ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. • Doubles: >++++++++++>>+<+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<]>.>[->[<++>-[<++>-[<++>-[<++>-[<-------->>[-]++<-[<++>-]]]]]]<[>+<-]+>>]<<] • Fibonacci: >++++++++++>+>+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<<]>.>>[[-]<[>+<-]>>[<<+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>+>+<<<-[>+<-]]]]]]]]]]]+>>>]<<<] • Square numbers: ++++[>+++++<-]>[<+++++>-]+<+[>[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+>>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<]<<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>[-[<->-]+[<<<]]<[>+<-]>]<<-]<<-] Turbo mode is 100% a thing but it's more fun to watch it tick imo. This language manipulates numbers in an array using only 8 characters. The pointer (the black triangle) tells you which byte (list item) you're modifying > Increment the pointer (move up the array) < Decrement the pointer (move down the array) + Increment the byte at the pointer (add 1) - Decrement the byte at the pointer (subtract 1) . Output the byte at the pointer as ASCII. , Input a byte and store it in the byte at the pointer (each time you use this, the next character is used) [ Jump forward past the matching ] if the byte at the pointer is zero. ] Jump backward to the matching [ unless the byte at the pointer is zero. Set input - after clicking the button, you gotta dismiss the current inputbox Clear data - empty the data list but keep the current input
The original will hit 255 and go on to 256, instead of wrapping around to zero as most interpreters do. Same for going from 0 to -1 instead of to 255. I've fixed that.