The Universal Machine was a virtual machine which participants in the ICFP programming contest of 2006 (Cult of the Bound Variable) needed to implement as the first step in a complicated series of programming achievements, each of which unlocked clues about how to proceed from there. This implementation was needed to run programs provided to the participants in .um and .umz files (the latter being self-extracting archives which expanded upon execution in the virtual machine).
This solution is implemented in the C programming language.
Contents:
- Untuned_UM - An implementation of the univeral machine which utilizes data structures provided by Dave Hanson in "C Interfaces and Implementations: Techniques for Creating Reusable Software (Addison-Wesley Professional Computing Series, 1997, ISBN 0-201-49841-3). https://drhanson.net/
- Tuned_UM - An implementation of the universal machine which utilizes primitive c data stuctures and arrays.
Relevant Links:
- Untuned data structure source: https://github.com/drh
- UM homepage: http://www.boundvariable.org/
- 2006 Contest Information: http://justsolve.archiveteam.org/wiki/Universal_Machine_(ICFP_programming_contest_2006)
- ICFP Programming Contest: https://www.icfpconference.org/contest.html