Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Brainfush

1,202 views

Published on

Published in: Technology
  • Be the first to comment

Brainfush

  1. 1. @ USP 2010-08-28 / @takano32 <tak@no32.tk> / UNIX
  2. 2. @takano32 / TAKANO Mitsuhiro UNIX / Linux Ruby committer (IA-64 maintainer) the Earth and the Internet
  3. 3. JANOG 26 LL Tiger * in WEB
  4. 4. @yusukebe
  5. 5. + = ...
  6. 6. Brainf*ck
  7. 7. Brainf*ck C
  8. 8. Brainf*ck
  9. 9. “>” ptr++; “<“ ptr--;
  10. 10. “+” (*ptr)++; *ptr = *ptr + 1; “-” (*ptr)--; *ptr = *ptr - 1;
  11. 11. “.” putchar(*ptr); “,” *ptr = getchar();
  12. 12. “[“ while(*ptr) { “]” }
  13. 13. Hello World +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+.
  14. 14. e +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. H l o
  15. 15. l, m, n, o +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. l o
  16. 16. +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 9 ptr
  17. 17. 8 +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 9 8 ptr
  18. 18. 11 +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 9 8 11 ptr
  19. 19. 5 +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 9 8 11 5 ptr
  20. 20. 9→8 +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 8 8 11 5 ptr
  21. 21. +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 7 16 22 10 ptr
  22. 22. +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 6 24 33 15 ptr
  23. 23. +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 5 32 44 20 ptr
  24. 24. +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 4 40 55 25 ptr
  25. 25. +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 3 48 66 30 ptr
  26. 26. +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 2 56 77 35 ptr
  27. 27. +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 1 64 88 40 ptr
  28. 28. +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 0 72 99 45 ptr
  29. 29. “H” +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 0 72 99 45 ptr
  30. 30. “e” +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 0 72 101 45 ptr
  31. 31. “l”, “l” +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 0 72 108 45 ptr
  32. 32. “o” +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 0 72 111 45 ptr
  33. 33. “,” +++++++++[>++++++++>+++++++++++>++++ +<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.++ +.------.--------.>+. 0 72 111 44 ptr
  34. 34. “Hello,”
  35. 35. Web
  36. 36. Brainf*ck Brainf*ck → s/^(.*)ck$/¥1sh/
  37. 37. Brainfush
  38. 38. Brainfush Brainf*ck
  39. 39. → → Brainf*ck
  40. 40. “>” PTR=$(($PTR + 1)) “+” VAL=VAL_$PTR VAL=$(($VAL)) eval VAL_$PTR=$(($VAL + 1))
  41. 41. “.” VAL=VAL_$PTR VAL=$(($VAL)) OCH=`echo “obase=8; $VAL” |bc` OCH=`echo “¥0OCH”` /bin/echo -n “$OCH”
  42. 42. “[“ VAL=VAL_$PTR VAL=$(($VAL)) while [ “VAL” != “0” ]; do “]” VAL=VAL_$PTR VAL=$(($VAL)); end
  43. 43. Brainf*ck
  44. 44. /bin/sh bf2sh.sh < hello.bf Brainf*ck → /bin/sh bf2sh.sh < hello.bf | /bin/sh Brainf*ck

×