Bytecode format
---------------

The bytecode file is composed of the following sections:

 * HEADER: 8-byte header
   [0:3]: Magic
   [4:5]: Bytecode version
   [6:7]: Reserved for future use

 * CONSTANTS
   [0:3]: Code start address
   [4:7]: Number of constants
   [...]: Constant index
   Each constant:
     [0]: Type (0 = string, 1 = real)
     if string:
       [1..4]: string size
       [...]:  string
     if real
       [1..4]: real

 * CODE
   Each function:
     [0:3] Address of next function
     [4:5] Number of parameters
     [6:7] Number of variables
     [...] Code
       [0] : Opcode
       [between 1 and 4] : Operand

The max file size is 2 Gb.

## Values can be encoded in the following ways:
 * The type is defined by the operator.
 * Constant indexes and function ids are encoded as ints
