My solutions to the 2006 ICFP Programming Contest (The Cult of the Bound Variable)
Find a file
2021-01-12 19:47:25 +01:00
src Fix invalid free error 2021-01-12 19:47:18 +01:00
.gitignore Initial commit: implementation of the Universal Machine 2021-01-11 21:15:22 +01:00
codex.umz Initial commit: implementation of the Universal Machine 2021-01-11 21:15:22 +01:00
hack.bas Add QVICKBASIC program 2021-01-12 08:24:46 +01:00
Makefile Fix invalid free error 2021-01-12 19:47:18 +01:00
README.org Update results 2021-01-12 19:47:25 +01:00
sandmark.umz Initial commit: implementation of the Universal Machine 2021-01-11 21:15:22 +01:00
um-spec.txt Initial commit: implementation of the Universal Machine 2021-01-11 21:15:22 +01:00
um.um Initial commit: implementation of the Universal Machine 2021-01-11 21:15:22 +01:00
umix.um Add QVICKBASIC program 2021-01-12 08:24:46 +01:00

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