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