In computer science compilation means transforming one language into another. The first reason to introduce compilers in computer science was expressiveness: people implement the solution to a problem in a computer language in which they are able to express themselves without difficulty. Then this solution was compiled into a language that is understandable for a computer: a machine language.

The same reasoning can be applied to (neuronal) modeling: you
express the model with something you feel comfortable with (e.g. the
modeling elements of Genesis). Then to simulate the model, it must be
compiled into a language that is understandable for a machine and
efficient to solve numerical calculations. This language is the
byte-code that `hsolve` deals with. To put it in other words,
the byte-codes are tailored to encode the numerical calculations
required to solve the equations that occur in a neuronal model. The
compilation step consists of two phases: in the first phase an
intermediary representation is built and optimized for structure. In
the second phase the optimized intermediary representation is used to
generate the actual byte-codes. The generated byte-codes are again
optimized such that e.g. redundant computations are removed (see
figure 6.1).

After a successful `SETUP` and `RESET`, `hsolve`
has examined the full model and has stored all the byte-codes necessary
to compute the behavior of the model. But besides the byte-codes that
encode the model, `hsolve` also stores the results of the
calculations and descriptive values necessary to do the calculations.
For technical reasons `hsolve` stores the operators (the
byte-codes) separately from the operands (the results of the
calculations and descriptive values).