Dynamically Declared Objects

When an object is declared and compiled into SICStus Objects, its methods cannot be changed during execution. Such an object is said to be static. To be able to update any method in an object, the object has to be declared dynamic. There is one exception, the inheritance hierarchy declared by super/[1,2] cannot be changed. By including the fact dynamic as part of the object body, the object becomes dynamic:

     dynamic_object :: {
             dynamic &
             :
             }.