[M3devel] reference to globals in globals?
    Hendrik Boom 
    hendrik at topoi.pooq.com
       
    Thu Aug 16 02:55:12 CEST 2012
    
    
  
On Wed, Aug 15, 2012 at 09:51:41AM -0500, Rodney M. Bates wrote:
> 
> 
> On 08/14/2012 10:04 PM, Jay K wrote:
> >
> >Heck, even if these weren't global, is it that unreasonble,
> >from the programmer's point of view, for the language/compiler
> >to do some pointer escape analysis and let me take the address
> >of a local, as long as I don't store it somewhere that outlives
> >the local?
> >
> 
> This is ultimately an undecidable problem and even conservative
> approximations of reasonable sophistication are far too involved
> for a language to require of every compiler.
Not to mention the obscurityof the language definition.
But isn't there something like that with the addresses of top-level 
proocedures?  the ones whose environments are completely static?
Or am I thinking of another type-safe language?  Or am I thinking of
assigning the procedures themselves? 
-- hendrik
> Of course, safe languages occasionally make you unnecessarily write a bit more
> code to do it the safe way.  E.g., the famous fake pointer to the root of a
> linked list example.  
You mean something like (in C with probable errors)
  list **p, *q;
  make q point to some linked list
  for ( p = &q; *p != NIL; p = &((*p)->next))
  {
   And here you can easily delete elements by *p = (*p) -> next
  }
This can be done prefectly type-safe in languages that allow
   REF REF list
Or is there some other fake pointer trick you're talking about?
-- hendrik
    
    
More information about the M3devel
mailing list