A. Gill and G. Kimmell, “Capturing functions and catching satellites,” tech. rep., January 2011. ITTC Technical Report ITTC-FY2011-TR-29952011-1.



The 2009 ICFP programming contest problem required contestants to control virtual satellites that obey basic physical laws. The orbital physics behavior of the system was simulated via a binary provided to contestants which ran on top of a simple virtual machine. Contestants were required to implement the virtual machine along with a controller program to manipulate the satellite’s behavior. In this paper, we describe the modeling of the simulation environment, with a focus on the compilation and testing infrastructure for the generated binaries for this virtual machine. This infrastructure makes novel use of an implementation of a deeply embedded Domain Specific Language (DSL) within Haskell. In particular, with use of IO-based observable sharing, it was straightforward for a function to be both an executable specification as well as a portable implementation, and because of this the rendered binary was found to be robust and reliable.


  title = {Capturing Functions and Catching Satellites},
  note = {ITTC Technical Report ITTC-FY2011-TR-29952011-1},
  year = {2011},
  month = {January},
  author = {Andy Gill and Garrin Kimmell},