А вот в одном из исходном файле транслятора icode.ml основная структура данных этого байткода (если я правильно понял):
## Код:
```
(* icode -- type of intermediate instructions *)
type icode =
    CONST of kind * value       (* Push constant (value) *)
  | SYMBOL of symbol
  | LOCAL of int                (* Push address (offset) *)
  | LOAD of int                 (* Load (size) *)
  | STORE of int                (* Store (size) *)
  | FIXCOPY                     (* Copy multiple values *)
  | FLEXCOPY                    (* Copy open array param *)
  | DUP of int                  (* Duplicate n'th value on stack (n) *)
  | POP of int                  (* Pop values (count) *)
  | SWAP                        (* Swap top two values on stack *)
  | STKMAP of symbol            (* Stack map for call point *)
  | CALL of int * int           (* Proc call (pcount, res size) *)
  | LINK                        (* Pass static link *)
  | SAVELINK                    (* Save static link in frame *)
  | RETURN of int               (* Return from procedure (rsize) *)
  | MONOP of kind * op          (* Unary operation (type, op) *)
  | BINOP of kind * op          (* Binary operation *)
  | CONV of kind * kind         (* Type conversion *)
  | ALIGN of int                (* Align parameter (size) *)
  | BOUND of int                (* Array bound check (line) *)
  | NCHECK of int               (* Check for null pointer (line) *)
  | GCHECK of int               (* Check statlink is zero (line) *)
  | ZCHECK of kind * int        (* Check for zero divisor (line) *)
  | ERROR of int * int          (* Runtime error (kind, line) *)
  | JUMP of codelab             (* Unconditional branch (dest) *)
  | JUMPB of bool * codelab     (* Jump on boolean *)
  | JUMPC of kind * op * codelab  (* Cond. branch (type, cond, dest) *)
  | JCASE of codelab list       (* Case jump *)
  | JRANGE of codelab           (* Range jump *)
  | TYPETEST of int             (* Type test (level) *)
  | LABEL of codelab            (* Set code label *)
  | LINE of int                 (* Line number *)
  | NOP                         (* No-op *)

  | LDK of int * int            (* Load constant (value, size) *)
  | INDEX of int                (* PUSH s/BINOP Times/BINOP PlusA *)
  | LDL of int * int            (* LOCAL n/LOAD s *)
  | STL of int * int            (* LOCAL n/STORE s *)
  | LDG of int * int            (* CONST k/LOAD s *)
  | STG of int * int            (* CONST k/STORE s *)
  | LDI of int                  (* INDEX s/LOAD s *)
  | STI of int                  (* INDEX s/STORE s *)
  | LDNW of int                 (* PUSH n/LDI 4 *)
  | STNW of int                 (* PUSH n/STI 4 *)
  | LDEW of int                 (* LDLW 12/LDNW n *)
  | STEW of int                 (* LDLW 12/STNW n *)
  | INCL of int                 (* LDLW n/INC/STLW n *)
  | DECL of int                 (* LDLW n/DEC/STLW n *)
  | JUMPCZ of kind * op * codelab  (* PUSH 0/JUMPC *)
  | TESTGEQ of codelab          (* Case split = DUP 1/JUMPC Lt *)
```
