* The Cult of the Bound Variable Solutions to the [[http://www.boundvariable.org/task.shtml][2006 ICFP Programming Contest]]. *Warning: spoilers below!* ** Universal Machine The Universal Machine is implemented in [[src/um.c]]. Compile it with =make= and run it on a UM program: #+begin_src sh ./um sandmark.umz # benchmark ./um codex.umz #+end_src Benchmark times: #+begin_src sh # time ./um sandmark.umz # without optimization ./um sandmark.umz 86.20s user 0.00s system 99% cpu 1:26.20 total # with -O3 ./um sandmark.umz 30.06s user 0.00s system 99% cpu 30.065 total #+end_src Get the next program: #+begin_src sh echo '(\\b.bb)(\\v.vv)06FHPVboundvarHRAk\np' | ./um codex.umz > codex_output tail -c +196 codex_output > umix.um #+end_src ** QVICKBASIC The fixed program is in [[hack.bas]]. We find the passwords of =ohmega= and =howie=. ** Passwords found | user | password | |--------+---------------| | ohmega | bidirectional | | howie | xyzzy | | ftd | falderal90 | | hmonk | COMEFROM | ** Publications found #+begin_src INTRO.LOG=200@999999|35e6f52e9bc951917c73af391e35e1d INTRO.MUA=5@999999|b9666432feff66e528a17fb69ae8e9a INTRO.UMD=10@999999|7005f80d6cd9b7b837802f1e58b11b8 INTRO.QBC=10@999999|e6ee9c98b80b4dd04814a29a37bcba8 INTRO.OUT=5@999999|69ca684f8c787cfe06694cb26f74a95 BASIC.MLC=100@999999|8f8f7b233a9deb154cbcd5314b8e930 ADVTR.INC=5@999999|f95731ab88952dfa4cb326fb99c085f ADVTR.CMB=5@999999|764e8a851411c66106e130374d8abbb #+end_src