<html><head></head><body><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><pre style="white-space: pre-wrap; color: rgb(0, 0, 0);">  > I can live without intermediate variables, especially</pre><pre style="white-space: pre-wrap; color: rgb(0, 0, 0);">  > if they simplify and improve compiler code generation.</pre><pre style="white-space: pre-wrap; color: rgb(0, 0, 0);"><br></pre><pre style="white-space: pre-wrap; color: rgb(0, 0, 0);">Only intermediate *variables* complicate code generation and slow</pre><pre style="white-space: pre-wrap; color: rgb(0, 0, 0);">down runtime performance (when calling an intermediate procedure,</pre><pre style="white-space: pre-wrap; color: rgb(0, 0, 0);">and when subsequently accessing intermediate variables).</pre><pre style="white-space: pre-wrap; color: rgb(0, 0, 0);"><br></pre><pre style="white-space: pre-wrap; color: rgb(0, 0, 0);">Intermediate *constants* and *types* come for free, both in the</pre><pre style="white-space: pre-wrap; color: rgb(0, 0, 0);">compiler and at runtime, as their values are known at compile time.</pre><pre style="white-space: pre-wrap; color: rgb(0, 0, 0);"><br></pre><pre style="white-space: pre-wrap; color: rgb(0, 0, 0);">This may have been one reason why access to intermediate *constants*</pre><pre style="white-space: pre-wrap; color: rgb(0, 0, 0);">and *types* is still allowed in the Oberon-07 revision, whereas access</pre><pre style="white-space: pre-wrap; color: rgb(0, 0, 0);">to intermediate *variables* has been disallowed (however: intermediate</pre><pre style="white-space: pre-wrap; color: rgb(0, 0, 0);">constants and types are *never* accessed from nested scopes in Oberon)<pre style="white-space: pre-wrap; color: rgb(0, 0, 0);"><br></pre></pre></div></body></html>