Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #103493

Re: C Names and Scopes

From BartC <bc@freeuk.com>
Newsgroups comp.lang.c
Subject Re: C Names and Scopes
Date 2017-02-08 21:54 +0000
Organization A noiseless patient Spider
Message-ID <o7g40a$qk0$1@dont-email.me> (permalink)
References (2 earlier) <o7evtg$fk1$1@dont-email.me> <87inokah37.fsf@bsb.me.uk> <1955fb97-35b4-446f-9bbd-65016ed217da@googlegroups.com> <o7fu0d$41j$1@dont-email.me> <lninokzadv.fsf@kst-u.example.com>

Show all headers | View raw


On 08/02/2017 20:38, Keith Thompson wrote:
> BartC <bc@freeuk.com> writes:
> [...]
>> 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.)
> [...]
>
> Just one small observation.  If two separate scopes happen to define the
> same identifier, for example:
>
>     void foo(void) {
>         for (int i = 0; i < N; i ++) {
>             /* ... */
>         }
>     }
>
>     void bar(void) {
>         for (int i = 0; i < N; i ++) {
>             /* ... */
>         }
>     }
>
> then the two instances of the name "i" are completely independent.
> Consider whether it makes sense to include them both in the same linked
> list.  (If the symbol table is used for things other than compiling
> code, it might well make sense.)

Yes, that can happen if symbols defined in each function are not purged. 
Entries are linked together in other ways so it knows that one 'i' 
belongs to 'foo' and the other belongs to 'bar'.

I use the technique on other projects, where even if there are dozens of 
entries for 'i', it can manage byte-code compiling (which equates to 
parsing a language like C) at up to 1Mlps or more.


-- 
bartc

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


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