Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #103485
| From | BartC <bc@freeuk.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: C Names and Scopes |
| Date | 2017-02-08 20:12 +0000 |
| Organization | A noiseless patient Spider |
| Message-ID | <o7fu0d$41j$1@dont-email.me> (permalink) |
| References | <o7duoo$vmp$1@dont-email.me> <f5ef390c-fbda-4644-8e35-6f19f6d6e6c1@googlegroups.com> <o7evtg$fk1$1@dont-email.me> <87inokah37.fsf@bsb.me.uk> <1955fb97-35b4-446f-9bbd-65016ed217da@googlegroups.com> |
On 08/02/2017 15:28, supercat@casperkitty.com wrote: > On Wednesday, February 8, 2017 at 8:32:35 AM UTC-6, Ben Bacarisse wrote: >> Logically, nested scopes are just a stack or maps. A linked list of >> hash tables would be one model of that and might even be reasonably >> efficient for normal C code. > > An alternative which could be useful in cases where one will want to keep all > symbols that have ever been defined (for feeding to a debugger, e.g.) would > be to be to use a hash table to identify for each name the most recent symbol > table entry associated with it, and then have each symbol table entry contain > the index of the previous entry associated with that name (if any) and an > identifier for the scope where the symbol is declared. Another table (or > entries in the same table) would identify all scopes that have been declared > and specify the parent of each. > The scheme I'm planning to use (to parse C code) uses a single hash table of symbol entries. For each unique identifier, there is one generic entry in that hash table, joined to a linked list that contains all instances of that name across all functions and blocks. (And, in the original scheme, across all modules. But C likes modules to be compiled entirely independently from each other.) Blocks are numbered sequentially in each function, and that number is stored with each identifier's symbol entry. There is a simple stack, but that is to manage the block numbers as blocks are created then discarded. I hoping that will be fast enough without needed to purge symbols associated with a function. They will be needed anyway for diagnostics. -- bartc
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 02:13 +0000
Re: C Names and Scopes David Brown <david.brown@hesbynett.no> - 2017-02-08 10:09 +0100
Re: C Names and Scopes mark.bluemel@gmail.com - 2017-02-08 02:37 -0800
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 11:07 +0000
Re: C Names and Scopes fir <profesor.fir@gmail.com> - 2017-02-08 09:03 -0800
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 17:19 +0000
Re: C Names and Scopes fir <profesor.fir@gmail.com> - 2017-02-08 09:42 -0800
Re: C Names and Scopes David Brown <david.brown@hesbynett.no> - 2017-02-08 12:08 +0100
Re: C Names and Scopes Moai <penultimategrill@gmail.com> - 2017-02-08 19:16 -0500
Re: C Names and Scopes David Brown <david.brown@hesbynett.no> - 2017-02-09 01:32 +0100
Re: C Names and Scopes Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-09 08:18 -0800
Re: C Names and Scopes Jerry Stuckle <jstucklex@attglobal.net> - 2017-02-09 12:06 -0500
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 10:51 +0000
Re: C Names and Scopes Thiago Adams <thiago.adams@gmail.com> - 2017-02-08 03:11 -0800
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 11:39 +0000
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 12:06 +0000
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 13:31 +0000
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 13:40 +0000
Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-08 16:39 +0000
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 17:51 +0000
Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-08 20:56 +0000
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 22:08 +0000
Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-08 23:27 +0000
Re: C Names and Scopes David Brown <david.brown@hesbynett.no> - 2017-02-08 13:41 +0100
Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-08 14:32 +0000
Re: C Names and Scopes supercat@casperkitty.com - 2017-02-08 07:28 -0800
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 20:12 +0000
Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-02-08 12:38 -0800
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 21:54 +0000
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 22:40 +0000
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-09 18:48 +0000
Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-09 19:53 +0000
Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-02-09 12:25 -0800
Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-09 21:27 +0000
Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-02-09 13:57 -0800
Re: C Names and Scopes David Brown <david.brown@hesbynett.no> - 2017-02-13 10:54 +0100
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-10 00:26 +0000
Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-10 00:42 +0000
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-10 01:03 +0000
Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-10 01:49 +0000
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-10 12:31 +0000
Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-10 23:48 +0000
Re: C Names and Scopes supercat@casperkitty.com - 2017-02-10 16:06 -0800
Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-02-10 16:22 -0800
Re: C Names and Scopes supercat@casperkitty.com - 2017-02-12 09:17 -0800
Re: C Names and Scopes Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-15 16:26 -0800
Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-02-09 17:56 -0800
Re: C Names and Scopes supercat@casperkitty.com - 2017-02-10 07:42 -0800
Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-02-10 08:44 -0800
Re: C Names and Scopes supercat@casperkitty.com - 2017-02-10 09:25 -0800
Re: C Names and Scopes Jerry Stuckle <jstucklex@attglobal.net> - 2017-02-10 16:43 -0500
Re: C Names and Scopes supercat@casperkitty.com - 2017-02-10 14:04 -0800
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-10 22:52 +0000
Re: C Names and Scopes Andrey Tarasevich <andreytarasevich@hotmail.com> - 2017-02-10 15:10 -0800
Re: C Names and Scopes Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-15 16:31 -0800
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-09 23:09 +0000
Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-09 23:36 +0000
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-10 00:19 +0000
Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-10 00:38 +0000
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-03-04 01:23 +0000
Re: C Names and Scopes jameskuyper@verizon.net - 2017-03-03 18:23 -0800
Re: C Names and Scopes GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-03-04 14:42 +0100
Re: C Names and Scopes "James R. Kuyper" <jameskuyper@verizon.net> - 2017-03-04 11:02 -0500
Re: C Names and Scopes GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-03-04 23:35 +0100
Re: C Names and Scopes Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-03-04 14:50 -0800
Re: C Names and Scopes Richard Heathfield <rjh@cpax.org.uk> - 2017-03-05 13:39 +0000
Re: C Names and Scopes GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-03-05 15:10 +0100
Re: C Names and Scopes Richard Heathfield <rjh@cpax.org.uk> - 2017-03-05 14:34 +0000
Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-03-05 19:25 -0800
Re: C Names and Scopes raltbos@xs4all.nl (Richard Bos) - 2017-03-06 09:37 +0000
Re: C Names and Scopes Richard Heathfield <rjh@cpax.org.uk> - 2017-03-06 10:34 +0000
Re: C Names and Scopes James Kuyper <jameskuyper@verizon.net> - 2017-03-06 07:23 -0500
Re: C Names and Scopes GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-03-06 14:26 +0100
Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-03-04 11:52 -0800
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-03-04 20:13 +0000
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-03-04 20:17 +0000
Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-03-04 12:38 -0800
Re: C Names and Scopes jameskuyper@verizon.net - 2017-03-04 13:50 -0800
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-03-04 22:37 +0000
Re: C Names and Scopes jameskuyper@verizon.net - 2017-03-04 16:15 -0800
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-03-05 00:31 +0000
Re: C Names and Scopes jameskuyper@verizon.net - 2017-03-04 16:47 -0800
Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-03-05 01:42 +0000
Re: C Names and Scopes jameskuyper@verizon.net - 2017-03-04 19:20 -0800
Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-03-05 01:40 -0800
csiph-web