[Oberon] Dynamic local array implementation
andreas_pirklbauer at yahoo.com
Sun Oct 15 14:36:21 CEST 2017
See inline comments.
> On Sun Oct 15 13:39:18 CEST 2017 Chris wrote:
> I believe access to intermediate variables can be done
> without a static link. In the same way a programmer
> would rewrite the source by adding reference parameters
> for the used intermediate variables a compiler can
> do the same and pass one address for each used
> variable. That does not complicate the regular case
> without intermediate access at all.
Either way, *some* information needs to be passed on the
stack if one wants to access to the surrounding scope.
> Which objects are you thinking about here, which
> are not covered by 1) or 3) ?
In Oberon-07 2) follows from 3) indeed. Historically though,
3) was not always implemented. But you’re right: Now that
we are where we are, it is sufficient to state 1) and 3).
> The only necessary improvement I see compared to Oberon
> is the removal of the hidden copy machine for structured
> value parameters.
Made possible by postulating read-only semantics for
structured value parameters. Regarding the other changes
(leading to even less data passed on the stack) one may
debate whether the gain is material enough. Certainly
from a (stack) space utilization perspective, preventing
copy semantics for structured types was the biggest change.
But there were other considerations, some academic/purist.
In any case, the question appears to be settled now.
Specific implementations can of course “extend” the
language, as currently defined, in various ways.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Oberon