PUSH [constant_value]: Push the constant on the stack POP [number]: Pop a certain numbers of variables from the stack DUP: Duplicate the top of the stack SWAP: Swap the first two items on the stack MAKE_REF [varname]: Create a reference to a value/cell in an environment STORE: Store a value in an environment DCL_CELL [varname]: Declare a cell in an environment DEF_VALUE [varname]: Define a value in an environment ENV: Push the current environment on the stack NEW_ENV: Create an environment and set it as the current environement DROP_ENV: Drop the current environment JMP [idx]: Jump to execute instruction at the given index IFJMP [idx]: Pop the value and if true jump to [idx] UNLESSJMP [idx]: Pop the value and if false jump to [idx] CALL [arguments]: Pop the function object and call it with the given number of arguments RET: Return MAKE_FUNC [#args]: Create a new function from the arguments name on the stack and the bytecode TRY_PUSH [idx]: Indicates the begining of an exception block, idx correspond to the instruction number where to jump if an exception occurs TRY_POP: Indicates the end of the exception block THROW: Throw the exception object from the top of the stack