Skip to content

Instantly share code, notes, and snippets.

@rolfwr
Created November 15, 2014 22:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rolfwr/4f34e8d806933f06d816 to your computer and use it in GitHub Desktop.
Save rolfwr/4f34e8d806933f06d816 to your computer and use it in GitHub Desktop.
A hello world program written in BrainFuck, run by a BrainFuck interpreter written in C#, compiled to IL and AOT compiled down to a portable Bourne shell script.
#! /bin/sh
LC_CTYPE=C; export LC_CTYPE
charat() { if test -z $BASH; then r=$(expr substr $1 $(($2 + 1)) 1); else r=${1:$2:1}; fi }
p=0
h=0
i=0
while true; do
case $i in
0)
eval "s${p}=\"++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.\""
eval "l0=\$s${p}"
eval "s${p}=\$l0"
eval "a1=\$s${p}"
r=${#a1}
eval "s${p}=$r"
eval "l1=\$s${p}"
eval "s${p}=\"0\""
eval "l2=\$s${p}"
eval "s${p}=\"0\""
eval "l3=\$s${p}"
eval "s${p}=\"100\""
r=o${h}
h=$((${h} + 1))
eval "a1=\$s${p}"
eval "${r}_len=$a1"
while test $a1 != 0; do
a1=$((${a1} - 1))
eval "${r}_${a1}=0"
done
eval "s${p}=$r"
eval "l4=\$s${p}"
i=16
continue
i=1
;;
1)
eval "s${p}=\$l0"
eval "s$(($p + 1))=\$l2"
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
charat $a1 $a2; r=$(printf '%d' "'$r")
eval "s${p}=$r"
eval "l5=\$s${p}"
eval "s${p}=\$l5"
eval "s$(($p + 1))=\"62\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "s$(($p + 1))=\"0\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "l9=\$s${p}"
eval "s${p}=\$l9"
eval "a1=\$s${p}"
if test $a1 != 0; then
i=2
continue
fi
eval "s${p}=\$l3"
eval "s$(($p + 1))=\"1\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
r=$(($a1 + $a2))
eval "s${p}=$r"
eval "l3=\$s${p}"
i=2
;;
2)
eval "s${p}=\$l5"
eval "s$(($p + 1))=\"60\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "s$(($p + 1))=\"0\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "l9=\$s${p}"
eval "s${p}=\$l9"
eval "a1=\$s${p}"
if test $a1 != 0; then
i=3
continue
fi
eval "s${p}=\$l3"
eval "s$(($p + 1))=\"1\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
r=$(($a1 - $a2))
eval "s${p}=$r"
eval "l3=\$s${p}"
i=3
;;
3)
eval "s${p}=\$l5"
eval "s$(($p + 1))=\"43\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "s$(($p + 1))=\"0\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "l9=\$s${p}"
eval "s${p}=\$l9"
eval "a1=\$s${p}"
if test $a1 != 0; then
i=4
continue
fi
eval "s${p}=\$l4"
eval "s$(($p + 1))=\$l3"
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
r=${a1}_$a2
eval "s${p}=$r"
eval "a1=\$s${p}"
r=$a1
eval "s${p}=$r"
eval "s$(($p + 1))=$r"
eval "a1=\$s$(($p + 1))"
eval "r=\$${a1}"
eval "s$(($p + 1))=$r"
eval "s$(($p + 2))=\"1\""
eval "a2=\$s$(($p + 2))"
eval "a1=\$s$(($p + 1))"
r=$(($a1 + $a2))
eval "s$(($p + 1))=$r"
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
eval "${a1}=${a2}"
i=4
;;
4)
eval "s${p}=\$l5"
eval "s$(($p + 1))=\"45\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "s$(($p + 1))=\"0\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "l9=\$s${p}"
eval "s${p}=\$l9"
eval "a1=\$s${p}"
if test $a1 != 0; then
i=5
continue
fi
eval "s${p}=\$l4"
eval "s$(($p + 1))=\$l3"
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
r=${a1}_$a2
eval "s${p}=$r"
eval "a1=\$s${p}"
r=$a1
eval "s${p}=$r"
eval "s$(($p + 1))=$r"
eval "a1=\$s$(($p + 1))"
eval "r=\$${a1}"
eval "s$(($p + 1))=$r"
eval "s$(($p + 2))=\"1\""
eval "a2=\$s$(($p + 2))"
eval "a1=\$s$(($p + 1))"
r=$(($a1 - $a2))
eval "s$(($p + 1))=$r"
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
eval "${a1}=${a2}"
i=5
;;
5)
eval "s${p}=\$l5"
eval "s$(($p + 1))=\"46\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "s$(($p + 1))=\"0\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "l9=\$s${p}"
eval "s${p}=\$l9"
eval "a1=\$s${p}"
if test $a1 != 0; then
i=6
continue
fi
eval "s${p}=\$l4"
eval "s$(($p + 1))=\$l3"
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
eval "r=\$${a1}_${a2}"
eval "s${p}=$r"
eval "a1=\$s${p}"
printf $(printf '\\%03o' $a1)
i=6
;;
6)
eval "s${p}=\"0\""
eval "l6=\$s${p}"
eval "s${p}=\$l5"
eval "s$(($p + 1))=\"91\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "s$(($p + 1))=\"0\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "l9=\$s${p}"
eval "s${p}=\$l9"
eval "a1=\$s${p}"
if test $a1 != 0; then
i=8
continue
fi
eval "s${p}=\$l4"
eval "s$(($p + 1))=\$l3"
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
eval "r=\$${a1}_${a2}"
eval "s${p}=$r"
eval "s$(($p + 1))=\"0\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "s$(($p + 1))=\"0\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "l9=\$s${p}"
eval "s${p}=\$l9"
eval "a1=\$s${p}"
if test $a1 != 0; then
i=7
continue
fi
eval "s${p}=\"1\""
eval "l6=\$s${p}"
i=7
;;
7)
i=8
;;
8)
eval "s${p}=\$l5"
eval "s$(($p + 1))=\"93\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "s$(($p + 1))=\"0\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "l9=\$s${p}"
eval "s${p}=\$l9"
eval "a1=\$s${p}"
if test $a1 != 0; then
i=10
continue
fi
eval "s${p}=\$l4"
eval "s$(($p + 1))=\$l3"
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
eval "r=\$${a1}_${a2}"
eval "s${p}=$r"
eval "s$(($p + 1))=\"0\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "l9=\$s${p}"
eval "s${p}=\$l9"
eval "a1=\$s${p}"
if test $a1 != 0; then
i=9
continue
fi
eval "s${p}=\"-1\""
eval "l6=\$s${p}"
i=9
;;
9)
i=10
;;
10)
eval "s${p}=\$l6"
eval "s$(($p + 1))=\"0\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "l9=\$s${p}"
eval "s${p}=\$l9"
eval "a1=\$s${p}"
if test $a1 != 0; then
i=15
continue
fi
eval "s${p}=\$l6"
eval "l7=\$s${p}"
i=14
continue
i=11
;;
11)
eval "s${p}=\$l2"
eval "s$(($p + 1))=\$l6"
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
r=$(($a1 + $a2))
eval "s${p}=$r"
eval "l2=\$s${p}"
eval "s${p}=\$l0"
eval "s$(($p + 1))=\$l2"
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
charat $a1 $a2; r=$(printf '%d' "'$r")
eval "s${p}=$r"
eval "l8=\$s${p}"
eval "s${p}=\$l8"
eval "s$(($p + 1))=\"91\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "s$(($p + 1))=\"0\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "l9=\$s${p}"
eval "s${p}=\$l9"
eval "a1=\$s${p}"
if test $a1 != 0; then
i=12
continue
fi
eval "s${p}=\$l7"
eval "s$(($p + 1))=\"1\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
r=$(($a1 + $a2))
eval "s${p}=$r"
eval "l7=\$s${p}"
i=14
continue
i=12
;;
12)
eval "s${p}=\$l8"
eval "s$(($p + 1))=\"93\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "s$(($p + 1))=\"0\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "l9=\$s${p}"
eval "s${p}=\$l9"
eval "a1=\$s${p}"
if test $a1 != 0; then
i=13
continue
fi
eval "s${p}=\$l7"
eval "s$(($p + 1))=\"1\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
r=$(($a1 - $a2))
eval "s${p}=$r"
eval "l7=\$s${p}"
i=13
;;
13)
i=14
;;
14)
eval "s${p}=\$l7"
eval "s$(($p + 1))=\"0\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "s$(($p + 1))=\"0\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 = $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "l9=\$s${p}"
eval "s${p}=\$l9"
eval "a1=\$s${p}"
if test $a1 != 0; then
i=11
continue
fi
i=15
;;
15)
eval "s${p}=\$l2"
eval "s$(($p + 1))=\"1\""
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
r=$(($a1 + $a2))
eval "s${p}=$r"
eval "l2=\$s${p}"
i=16
;;
16)
eval "s${p}=\$l2"
eval "s$(($p + 1))=\$l1"
eval "a2=\$s$(($p + 1))"
eval "a1=\$s${p}"
if test $a1 -lt $a2; then r=1; else r=0; fi
eval "s${p}=$r"
eval "l9=\$s${p}"
eval "s${p}=\$l9"
eval "a1=\$s${p}"
if test $a1 != 0; then
i=1
continue
fi
break
exit 1
;;
esac
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment