Add two values from https://en.wikipedia.org/wiki/Brainfuck#Adding_two_values ALL ABOARD chug chug END OF THE LINE Cell c0 = 2 ALL ABOARD choo END OF THE LINE ALL ABOARD chug chug chug chug chug END OF THE LINE Cell c1 = 5 ALL ABOARD tickets please END OF THE LINE Start your loops with your cell pointer on the loop counter (c1 in our case) ALL ABOARD choo choo END OF THE LINE ALL ABOARD chug END OF THE LINE Add 1 to c0 ALL ABOARD choo END OF THE LINE ALL ABOARD chugga END OF THE LINE Subtract 1 from c1 ALL ABOARD your ticket please END OF THE LINE End your loops with the cell pointer on the loop counter At this point our program has added 5 to 2 leaving 7 in c0 and 0 in c1 but we cannot output this value to the terminal since it is not ASCII encoded To display the ASCII character "7" we must add 48 to the value 7 We use a loop to compute 48 = 6 * 8 ALL ABOARD chug chug chug chug END OF THE LINE ALL ABOARD chug chug chug chug END OF THE LINE c1 = 8 and this will be our loop counter again ALL ABOARD tickets please choo choo END OF THE LINE ALL ABOARD chug chug chug END OF THE LINE ALL ABOARD chug chug chug END OF THE LINE Add 6 to c0 ALL ABOARD choo END OF THE LINE ALL ABOARD chugga END OF THE LINE Subtract 1 from c1 ALL ABOARD your ticket please choo choo END OF THE LINE ALL ABOARD click END OF THE LINE Print out c0 which has the value 55 which translates to "7"! Finally print a newline: ALL ABOARD chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga click This program prints "Hello World!" and a newline to the screen, its length is 106 active command characters. [It is not the shortest.] This loop is an "initial comment loop", a simple way of adding a comment to a BF program such that you don't have to worry about any command characters. Any ".", ",", "+", "-", "<" and ">" characters are simply ignored, the "[" and "]" characters just have to be balanced. This loop and the commands it contains are ignored because the current cell defaults to a value of 0; the 0 value causes this loop to be skipped. from https://en.wikipedia.org/wiki/Brainfuck#Hello_World! ALL ABOARD chug chug chug chug chug chug chug chug END OF THE LINE Set Cell #0 to 8 ALL ABOARD tickets please choo chug chug chug chug END OF THE LINE Add 4 to Cell #1; this will always set Cell #1 to 4 ALL ABOARD tickets please END OF THE LINE as the cell will be cleared by the loop ALL ABOARD choo chug chug END OF THE LINE Add 2 to Cell #2 ALL ABOARD choo chug chug chug END OF THE LINE Add 3 to Cell #3 ALL ABOARD choo chug chug chug END OF THE LINE Add 3 to Cell #4 ALL ABOARD choo chug END OF THE LINE Add 1 to Cell #5 ALL ABOARD choo choo choo choo choo choo choo choo chugga END OF THE LINE Decrement the loop counter in Cell #1 ALL ABOARD your ticket please END OF THE LINE Loop until Cell #1 is zero; number of iterations is 4 ALL ABOARD choo chug END OF THE LINE Add 1 to Cell #2 ALL ABOARD choo chug END OF THE LINE Add 1 to Cell #3 ALL ABOARD choo chugga END OF THE LINE Subtract 1 from Cell #4 ALL ABOARD choo choo chug END OF THE LINE Add 1 to Cell #6 ALL ABOARD tickets please choo choo your ticket please END OF THE LINE Move back to the first zero cell you find; this will be Cell #1 which was cleared by the previous loop ALL ABOARD choo choo chugga END OF THE LINE Decrement the loop Counter in Cell #0 ALL ABOARD your ticket please END OF THE LINE Loop until Cell #0 is zero; number of iterations is 8 The result of this is: Cell no : 0 1 2 3 4 5 6 Contents: 0 0 72 104 88 32 8 Pointer : ^ ALL ABOARD choo choo click END OF THE LINE Cell #2 has value 72 which is 'H' ALL ABOARD choo chugga chugga chugga click END OF THE LINE Subtract 3 from Cell #3 to get 101 which is 'e' ALL ABOARD chug chug chug chug chug chug chug clickety click chug chug chug click END OF THE LINE Likewise for 'llo' from Cell #3 ALL ABOARD choo choo click END OF THE LINE Cell #5 is 32 for the space ALL ABOARD choo choo chugga clickety END OF THE LINE Subtract 1 from Cell #4 for 87 to give a 'W' ALL ABOARD choo choo clickety END OF THE LINE Cell #3 was set to 'o' from the end of 'Hello' ALL ABOARD chug chug chug click chugga chugga chugga chugga chugga chugga clickety chugga chugga chugga chugga chugga chugga chugga chugga click END OF THE LINE Cell #3 for 'rl' and 'd' ALL ABOARD choo choo chug click END OF THE LINE Add 1 to Cell #5 gives us an exclamation point ALL ABOARD choo chug chug click END OF THE LINE And finally a newline from Cell #6 ROT13 in Brainfuck from https://en.wikipedia.org/wiki/Brainfuck#ROT13 ALL ABOARD chugga clack chug tickets please END OF THE LINE Read first character and start outer character reading loop ALL ABOARD chugga tickets please END OF THE LINE Skip forward if character is 0 ALL ABOARD choo choo chug chug chug chug tickets please choo chug chug chug chug chug chug chug chug choo choo chugga your ticket please END OF THE LINE Set up divisor (32) for division loop (MEMORY LAYOUT: dividend copy remainder divisor quotient zero zero) ALL ABOARD choo choo chug choo choo chugga tickets please END OF THE LINE Set up dividend (x minus 1) and enter division loop ALL ABOARD choo chug choo chug choo chugga tickets please choo choo choo your ticket please END OF THE LINE Increase copy and remainder / reduce divisor / Normal case: skip forward ALL ABOARD choo choo tickets please tickets please choo chug choo choo chugga your ticket please choo choo chug choo your ticket please END OF THE LINE Special case: move remainder back to divisor and increase quotient ALL ABOARD choo choo choo choo choo choo choo choo choo choo chugga END OF THE LINE Decrement dividend ALL ABOARD your ticket please END OF THE LINE End division loop ALL ABOARD your ticket please choo choo choo tickets please chugga your ticket please chug END OF THE LINE End skip loop; zero former divisor and reuse space for a flag ALL ABOARD choo chugga chugga tickets please chugga tickets please choo choo chugga choo chug chug chug tickets please chugga your ticket please your ticket please your ticket please choo choo tickets please END OF THE LINE Zero that flag unless quotient was 2 or 3; zero quotient; check flag ALL ABOARD chug chug chug chug chug chug chug chug chug chug chug chug choo choo tickets please END OF THE LINE If flag then set up divisor (13) for second division loop (MEMORY LAYOUT: zero copy dividend divisor remainder quotient zero zero) ALL ABOARD choo chugga tickets please choo chug choo choo your ticket please END OF THE LINE Reduce divisor; Normal case: increase remainder ALL ABOARD choo tickets please chug tickets please choo choo chug choo chugga your ticket please choo chug choo choo your ticket please END OF THE LINE Special case: increase remainder / move it back to divisor / increase quotient ALL ABOARD choo choo choo choo choo choo choo choo choo choo chugga END OF THE LINE Decrease dividend ALL ABOARD your ticket please END OF THE LINE End division loop ALL ABOARD choo choo tickets please choo choo chug choo chugga your ticket please END OF THE LINE Add remainder back to divisor to get a useful 13 ALL ABOARD choo tickets please END OF THE LINE Skip forward if quotient was 0 ALL ABOARD chugga tickets please END OF THE LINE Decrement quotient and skip forward if quotient was 1 ALL ABOARD chugga choo choo choo choo tickets please chugga your ticket please choo choo END OF THE LINE Zero quotient and divisor if quotient was 2 ALL ABOARD your ticket please choo choo choo choo tickets please choo choo choo choo chugga choo choo chugga your ticket please choo choo END OF THE LINE Zero divisor and subtract 13 from copy if quotient was 1 ALL ABOARD your ticket please choo choo choo choo tickets please choo choo choo choo chug choo choo chugga your ticket please END OF THE LINE Zero divisor and add 13 to copy if quotient was 0 ALL ABOARD your ticket please END OF THE LINE End outer skip loop (jump to here if ((character minus 1)/32) was not 2 or 3) ALL ABOARD choo choo tickets please chugga your ticket please END OF THE LINE Clear remainder from first division if second division was skipped ALL ABOARD choo choo click tickets please chugga your ticket please END OF THE LINE Output ROT13ed character from copy and clear it ALL ABOARD choo choo chugga clack chug END OF THE LINE Read next character ALL ABOARD your ticket please END OF THE LINE End character reading loop