Section Header
    + name := Strict MEMORY;
    - comment := "Memory manager.";
    - external :=
`
#define MINIMUM_SIZE 256
void *table_size[MINIMUM_SIZE/sizeof(void *)];
void *last_block[64];
`;
Section Inherit
    - parent_object:OBJECT :=
MACRO ALLOCATOR
Section Mapping
    + previous_linear:UINTEGER_32;
    + size_and_id:UINTEGER_32;
---------------> Limit for Busy (64 bits)
    + next_free :MEMORY;
    + previous_free:MEMORY;
---------------> Limit for Free
Section MEMORY
    - object_size:INTEGER <-
        2x32bits = 64bits
    - this:POINTER <-
    - begin:POINTER <-
    - size:UINTEGER_32 <-
    - next_linear:MEMORY <-
    - id:UINTEGER_32 <-
    - id_end:UINTEGER_32 <-
    - is_end:BOOLEAN <-
    - set_previous_linear p:UINTEGER_32 <-
    - set_size_and_id s:UINTEGER_32 <-
    - get_index p:POINTER :UINTEGER_32 <-
    - nb_page:UINTEGER_32;
    - put_last m:MEMORY to idx:UINTEGER_32 <-
    - get_last idx:UINTEGER_32 :MEMORY <-
    - bound_test ptr:POINTER :BOOLEAN <-
    - search_capacity <-
    - new_page:MEMORY <-
Busy / Free Block.
    - id_free:UINTEGER_32 <-
    - id_busy:UINTEGER_32 <-
    - set_next_free n:MEMORY <-
    - set_previous_free p:MEMORY <-
    - delete_link_free <-
    - add_link_free <-
Section MEMORY
    - first_free:MEMORY;
Management.
    - to_free idx:UINTEGER_32 <-
    - to_busy sz:UINTEGER_32 index idx:UINTEGER_32 <-
    - resize new_size:UINTEGER_32 index idx:UINTEGER_32 :MEMORY <-
Searching.
    - search new_size:UINTEGER_32 :MEMORY <-
    - new_lab t:UINTEGER_32 :POINTER <-
Section Public
MICRO ALLOCATOR
    - alloc_type t:UINTEGER_32 size sz:UINTEGER_32 :POINTER <-
        Allocation for object without type. (LAB_TYPE)
    - free p:POINTER type t:UINTEGER_32 <-
    - alloc_size sz:UINTEGER_32 :POINTER <-
        Allocation for object with type. (LAB_SIZE)
    - free p:POINTER size sz:UINTEGER_32 <-
    - alloc_dynamic sz:UINTEGER_32 :POINTER <-
        Allocation NATIVE_ARRAY[E]. (LAB_SIZE or malloc)
    - realloc_dynamic p:POINTER old_size old_sz:UINTEGER_32 new_size new_sz:UINTEGER_32 :POINTER <-
    - free_dynamic p:POINTER size sz:UINTEGER_32 <-
GARBAGE COLLECTOR