Orbit virtual machine
The Orbit virtual machine or Orbit VM is an esoteric programming language used in the ICFP 2009 programming contest.
Orbit programs run their instructions in sequence in a loop, and there are no jump instructions that can change this order. Every instruction has an associated memory cell storing a 64-bit floating-point value, and the instruction writes its value to that cell. The input operands of the instructions are also memory cells, with their absolute address encoded in the instruction. There are instructions for floating-point add, subtract, multiply, divide, square root, identity, ordered comparison with zero, and a branchless conditional that results in one of its two inputs depending on the result of the previous comparison. There are also instructions to read or write IO devices.
In the contest, Orbit virtual machine programs written by the contest organizers simulate the mechanics of a satellite orbiting Earth. The contestants must figure out what commands to supply to the thrusters of the satellite using the input ports of the Orbit virtual machine program.