[Oberon] Intermediate scopes in Oberon-07
dsar at eml.cc
Mon Feb 26 13:35:26 CET 2018
On Mon, Feb 26, 2018, at 12:15 PM, Артур Ефимов wrote:
> Diego Sardina wrote:
> In the past I never saw procedure variables as a solution for circular reference, but at this point I prefer forward reference.
> Also they don't really come for free especially in runtime, it is another level of indirection and they prevent the compiler to inline them.
> he compiler can't inline these procedures anyway, as they are involved in recursion (and thus have to be forward-referenced in some way).
I didn't say or mean that local procedures are ALWAYS nested by the compiler, but there are some cases where they can be. Instead procedure variables can't be inlined, always.
> I'm using procedure variables in my Oberon compiler, like N. Wirth does in Project Oberon. Didn't think about nesting all of these procedures inside Expression.
Weird, since this is what makes more sense. There are a lot of nice books in Pascal and Modula-2 where those procedures are nested inside Expression. This is historical, not something new :-)
> By the way, does anybody know why in NW's compiler procedures "expression0", "
> ", "selector", "element", "set", "factor", "term" (but not "SimpleExpression" for example)
> start from a small letter?
They reflect the names used in the grammar
More information about the Oberon