Recognising pointers during garbage collection?

"Maarten D. de Jong" <cymric73@hotmail.com>
21 Jul 2003 21:35:11 -0400

          From comp.compilers

Related articles
Recognising pointers during garbage collection? cymric73@hotmail.com (Maarten D. de Jong) (2003-07-21)
Re: Recognising pointers during garbage collection? sven@clio.in-berlin.de (Sven Gohlke) (2003-07-23)
Re: Recognising pointers during garbage collection? joachim.durchholz@web.de (Joachim Durchholz) (2003-07-23)
Re: Recognising pointers during garbage collection? ftu@fi.ruu.nl (2003-07-25)
Re: Recognising pointers during garbage collection? dobes@dobesland.com (Dobes Vandermeer) (2003-07-25)
Re: Recognising pointers during garbage collection? fjh@cs.mu.oz.au (Fergus Henderson) (2003-07-25)
Re: Recognising pointers during garbage collection? joachim.durchholz@web.de (Joachim Durchholz) (2003-07-25)
[8 later articles]
| List of all articles for this month |
From: "Maarten D. de Jong" <cymric73@hotmail.com>
Newsgroups: comp.compilers
Date: 21 Jul 2003 21:35:11 -0400
Organization: Delft University of Technology
Keywords: GC, question
Posted-Date: 21 Jul 2003 21:35:11 EDT

I am planning on getting my hands dirty with compiler design and language
construction in a few months, and I have dutifully lurked this group for
anything related to this topic. Through lots of reading, I have came
across the concept of 'garbage collection'. Now while I think that I have
some idea of the various algorithms involved (reference counting, mark/sweep,
and various others), I do not really understand some of the implementation
technicalities. The most baffling is the fact that many of these algorithms
rely on hunting down pointers---but how do you recognise one? The documen-
tation accompanying Boehm's celebrated program cryptically states that
'pointers of course look like pointers', but this is 'of course' circular
reasoning.


I realise there is probably no fool-proof way of detecting whether a bit-
pattern is a pointer or not, and that consequently there is a lot of black
magic and heuristics involved. Can someone explain some of the more common
techniques in uncooperative languages (like C) or cooperative ones (which
you design yourself)?




Kind regards,
Maarten


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.