Advanced features / Runtime stack |
Simple data types such as INTEGER, DECIMAL, VARCHAR are returned by value. When returning a simple typed value, the runtime system pushes a copy of the data on the stack. The STRING data type is an exception to this rule: elements of this type are return by mutable reference: the whole string value is not copied on the stack, only the reference to the string value is copied.
MAIN DEFINE x INTEGER LET x = int_add(10,20) END MAIN FUNCTION int_add(n1,n2) DEFINE n1, n2 INTEGER RETURN (n1+n2) END FUNCTION