Related articles |
---|
[2 earlier articles] |
Re: Symbol tables and scopes cfc@shell01.TheWorld.com (Chris F Clark) (2006-02-03) |
Re: Symbol tables and scopes Peter_Flass@Yahoo.com (Peter Flass) (2006-02-03) |
Re: Symbol tables and scopes gdr@integrable-solutions.net (Gabriel Dos Reis) (2006-02-06) |
Re: Symbol tables and scopes DrDiettrich@compuserve.de (Hans-Peter Diettrich) (2006-02-06) |
Re: Symbol tables and scopes DrDiettrich@compuserve.de (Hans-Peter Diettrich) (2006-02-06) |
Re: Symbol tables and scopes gah@ugcs.caltech.edu (glen herrmannsfeldt) (2006-02-06) |
Re: Symbol tables and scopes Peter_Flass@Yahoo.com (Peter Flass) (2006-02-07) |
Re: Symbol tables and scopes alexc@TheWorld.com (Alex Colvin) (2006-02-11) |
Re: Symbol tables and scopes cfc@shell01.TheWorld.com (Chris F Clark) (2006-02-11) |
Re: Symbol tables and scopes cbarron413@adelphia.net (Carl Barron) (2006-02-12) |
Re: Symbol tables and scopes DrDiettrich@compuserve.de (Hans-Peter Diettrich) (2006-02-14) |
Re: Symbol tables and scopes DrDiettrich@compuserve.de (Hans-Peter Diettrich) (2006-02-14) |
Re: Symbol tables and scopes david.thompson1@worldnet.att.net (Dave Thompson) (2006-02-14) |
[9 later articles] |
From: | Peter Flass <Peter_Flass@Yahoo.com> |
Newsgroups: | comp.compilers |
Date: | 7 Feb 2006 12:14:04 -0500 |
Organization: | Road Runner |
References: | 06-01-101 06-02-027 06-02-045 |
Keywords: | symbols |
Posted-Date: | 07 Feb 2006 12:14:04 EST |
>>I can't lay any claim to originality, but I use a two-layer structure.
>>I have one "base" entry for a unque symbol (name). The "base" entry
>>contains a list of pointers to the actual symbol table entries, one for
>>each declaration, and the id of the block containing the declaration. I
>>look up the symbol and then scan the list to find the applicable
>>declaration for the current scope.
> How exactly do you find the block with the "applicable" definition, in
> an tree of scopes/blocks?
>
> It looks like inefficient to me, when for every currently visible scope
> the block id must be compared with the id's of *all* possible blocks?
I maintain a tree of blocks. The scope of a declaration is the block
it's declared in and all nested blocks that don't contain a
redeclaration. I walk backwards up the tree and, for each block, see
if the declaration list for this variable contains that block id. The
first one I hit is the applicable declaration. Probably not the most
efficient, and, as I said, probably not original. It has the
advantage that it works. I'm open to other suggestions.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.