When the user submits jobs to the scheduler and virtual machine, this happens by means of byte code, a machine representation of the user's job. The byte code is built with an assembler that translates human-readable simple instructions into this machine representation. This chapter will describe the ideas behind the language that gives us the byte code. The language is a 1:1 mapping to the actual byte-code, so by dissecting the language, we will be exploring the inner workings of the virtual machine itself. First, however, I will present some of my personal views on two existing languages currently in widespread use.