[Oberon] Oxford Oberon-2 Compiler and local procedures
    Alexander Iljin 
    ajsoft.gm at gmail.com
       
    Thu Nov 27 05:52:35 MET 2008
    
    
  
Hello!
MB> I translated some Pascal code for "deep binding" (aka closures) into Oberon.
...
MB> Does anyone have an idea as to why oo2c seems to compile the code just
MB> fine, and obc does not?
  This is clearly a bug in oo2c. Oberon does not support closures this
  way. Didn't we discuss this recently?
  There is no way procedure B will be able to access its context
  (variable I in this case) when the procedure A terminates. The
  compiler does not check if you only use the pointer locally,
  therefore it must only allow top-level procedures to be pointer
  values.
  The quoted scopes reference have nothing to do with this issue.
  Here's a quote from "Oberon-2 Report" by N.Wirth, section 6.5
  "Procedure types": Procedure assigned to a pointer "... must not be
  a predeclared or type-bound nor may it be local to another
  procedure".
---=====---
 Alexander
    
    
More information about the Oberon
mailing list