Data Types

Data types are the objects managed internally by the VM and are the only way to represent information internally.

NULL

Represents “non-data”, an empty object or a result that cannot be operated on.

BOOL

A boolean value (true or false)

UINT

A 32 bits unsigned integer number

INT

A 32 bits signed integer number

FLOAT

A 32 bits float number

CONST_STRING

A constant string.
This type can contain two types of strings:
  • A referenced constant string on program area (referenced by instruction PUSH_CONST_STRING) and have is_program attribute true.

  • An arbitrary pointer to an external dynamically allocated string and have is_program attribute false. In this case when object is dropped the string pointer is automatically released.

ARRAY

An array of any type of objects
This type ever reside in Heap.
Can be created by instruction NEW_ARRAY and referenced by PUSH_ARRAY, GET_ARRAY_VALUE, SET_ARRAY_VALUE.
Objects contained in an array can also be arrays.

GENERIC

This object only can exist in Heap
Represent an standard data value in Heap (mostly used in FFI or libraries).

HEAP_REF

This object represent a direct reference to an object in Heap
Is use internally by others object and can be used by FFI and libraries for internal uses.

LIB_OBJ

A generic library object that resides in Heap
Is the main library object (see LIBRARIES).