|Heap pointers email@example.com (shrey) (2005-10-29)|
|Re: Heap pointers firstname.lastname@example.org (Gene) (2005-11-01)|
|Re: Heap pointers email@example.com (2005-11-01)|
|Re: Heap pointers DrDiettrich@compuserve.de (Hans-Peter Diettrich) (2005-11-01)|
|Re: Heap pointers firstname.lastname@example.org (Dmitry A. Kazakov) (2005-11-01)|
|Re: Heap pointers bobduff@shell01.TheWorld.com (Robert A Duff) (2005-11-01)|
|Date:||1 Nov 2005 00:21:57 -0500|
|Posted-Date:||01 Nov 2005 00:21:57 EST|
For the runtime part, you might study the Boehm garbage collector,
which uses some of the techniques that John mentions.
A compile-time part is pretty standard data flow analysis, somewhat
easier than general alias analysis. (See for example the "dragon book"
Compiler Design, Aho, Sethi, and Ullman.) Essentially it's a reaching
definitions problem. If a pointer use can be reached only by
definitions of one type (stack or heap) then you can safely tag that
use. Otherwise it remains untagged, a "don't know" case.
Return to the
Search the comp.compilers archives again.