My solutions to the 2006 ICFP Programming Contest (The Cult of the Bound Variable)
| src | ||
| .gitignore | ||
| codex.umz | ||
| hack.bas | ||
| Makefile | ||
| README.org | ||
| sandmark.umz | ||
| um-spec.txt | ||
| um.um | ||
| umix.um | ||
The Cult of the Bound Variable
Solutions to the 2006 ICFP Programming Contest.
Warning: spoilers below!
Universal Machine
The Universal Machine is implemented in /dimitri/bound-variable/src/branch/master/src/um.c. Compile it with
make and run it on a UM program:
./um sandmark.umz # benchmark
./um codex.umz
Benchmark times:
# 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
Get the next program:
echo '(\\b.bb)(\\v.vv)06FHPVboundvarHRAk\np' | ./um codex.umz > codex_output
tail -c +196 codex_output > umix.um
QVICKBASIC
The fixed program is in /dimitri/bound-variable/src/branch/master/hack.bas. We find the passwords of ohmega
and howie.
Passwords found
| user | password |
|---|---|
| ohmega | bidirectional |
| howie | xyzzy |
| ftd | falderal90 |
| hmonk | COMEFROM |
Publications found
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