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


Groups > comp.lang.c > #148147

Re: curiosity about compiler phases

From Ben Bacarisse <ben.usenet@bsb.me.uk>
Newsgroups comp.lang.c
Subject Re: curiosity about compiler phases
Date 2019-11-24 03:26 +0000
Organization A noiseless patient Spider
Message-ID <87d0di550h.fsf@bsb.me.uk> (permalink)
References (1 earlier) <FcZBF.211$rX6.122@fx22.am4> <PXZBF.74624$hh5.43882@fx07.iad> <dK_BF.12$LP4.8@fx40.am4> <87imnb5poj.fsf@bsb.me.uk> <zI0CF.183551$oT5.82048@fx47.iad>

Show all headers | View raw


Richard Damon <Richard@Damon-Family.org> writes:

> On 11/22/19 8:47 PM, Ben Bacarisse wrote:
>> Bart <bc@freeuk.com> writes:
>> 
>>> Where a language has line continuation to split source across multiple
>>> lines, then it is highly unusual to allow that split in the middle of
>>> a token.
>> 
>> It's a comparatively rare feature altogether, but I don't think the
>> balance between the two ways of doing it it quite as dramatic as you
>> suggest.  In C, C++ and Fortran, line continuations are simply literal
>> line pasting, but what languages don't do it that way?  I think Python
>> and Visual Basic are two, but are there lots more?
>> 
>> In my view, if you are going to do it, doing it simply and entirely
>> literally makes it both easy to document and the more broadly useful.
>> 
>>> What is the purpose
>> 
>> It was useful whenever C was used in line-length limited contexts.  I've
>> seen it used when transmitting C over some early messaging systems, and
>> I imagine it was (any maybe still is) useful where file systems impose
>> fixed-length records.  The line breaking and reconstruction can be done
>> without any knowledge of tokens.
>> 
>>> other than it was just a side effect of the way the first C
>>> preprocessor happened to be thrown together?
>> 
>> Unlikely, since the mechanism you've been talking about was not in early
>> C.  I think it was first standardised (in the form that bothers you), by
>> ANSI C.
>
> My memory was that K&R vintage had the continuation for strings and
> macros, but did not have had it for mid-token.

Yes, that's my impression too.  (You can, if you like, consider the
string case to be quite different.  It's really just another escape
sequence.  While \n maps to a newline, \<newline> maps to nothing.)

> I think its use mid-token just happens to fall out of the phases of
> translation that was the method used to describe the language in the
> standard.

It does, but I would be surprised if it had not been more deliberate
that you make it sound!

> The second step (after character mapping) is line splicing.
> This is needed to handle the old style long string handling, which to
> make it work right requires just removing them (and not adding a white
> space), which yields the ability to continue a token on the next line.
>
> It would be more complicated to prevent this from happening, it would
> require tokenizing before line splicing, but also you would then need
> something more complicated to describe how to tokenize, as strings
> tokens now might include a line break that has been escaped by the
> backslash.

I don't think the string case is complicated.  Strings need to have
escape sequences mapped anyway.

-- 
Ben.
 

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


Thread

curiosity about compiler phases Thiago Adams <thiago.adams@gmail.com> - 2019-11-07 05:28 -0800
  Re: curiosity about compiler phases Nick Bowler <nbowler@draconx.ca> - 2019-11-22 19:25 +0000
  Re: curiosity about compiler phases "A. K." <minforth@arcor.de> - 2019-11-22 12:19 -0800
  Re: curiosity about compiler phases Bart <bc@freeuk.com> - 2019-11-22 22:22 +0000
    Typo? (Was: curiosity about compiler phases) gazelle@shell.xmission.com (Kenny McCormack) - 2019-11-22 22:34 +0000
      Re: Typo? (Was: curiosity about compiler phases) Bart <bc@freeuk.com> - 2019-11-22 23:49 +0000
        Re: Typo? Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2019-11-22 19:26 -0700
    Re: curiosity about compiler phases scott@slp53.sl.home (Scott Lurndal) - 2019-11-22 23:12 +0000
      Re: curiosity about compiler phases Bart <bc@freeuk.com> - 2019-11-23 00:06 +0000
        Re: curiosity about compiler phases Richard Damon <Richard@Damon-Family.org> - 2019-11-22 20:34 -0500
        Re: curiosity about compiler phases Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-11-23 01:47 +0000
          Re: curiosity about compiler phases Richard Damon <Richard@Damon-Family.org> - 2019-11-22 21:21 -0500
            Re: curiosity about compiler phases Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-11-24 03:26 +0000
              Re: curiosity about compiler phases Bart <bc@freeuk.com> - 2019-11-24 11:29 +0000
                Re: curiosity about compiler phases Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-11-24 16:49 +0000
          Re: curiosity about compiler phases Bart <bc@freeuk.com> - 2019-11-23 12:21 +0000
            Re: curiosity about compiler phases Richard Damon <Richard@Damon-Family.org> - 2019-11-23 10:08 -0500
            Re: curiosity about compiler phases scott@slp53.sl.home (Scott Lurndal) - 2019-11-23 15:49 +0000
              Re: curiosity about compiler phases Bart <bc@freeuk.com> - 2019-11-23 16:21 +0000
                Re: curiosity about compiler phases Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-11-24 03:37 +0000
                Re: curiosity about compiler phases Bart <bc@freeuk.com> - 2019-11-24 11:25 +0000
                Re: curiosity about compiler phases Bart <bc@freeuk.com> - 2019-11-25 14:06 +0000
    Re: curiosity about compiler phases Keith Thompson <kst-u@mib.org> - 2019-11-22 21:25 -0800
      Beyond our pay grade (Was: curiosity about compiler phases) gazelle@shell.xmission.com (Kenny McCormack) - 2019-11-23 07:43 +0000
    Re: curiosity about compiler phases Thiago Adams <thiago.adams@gmail.com> - 2019-11-23 06:28 -0800
      Re: curiosity about compiler phases Thiago Adams <thiago.adams@gmail.com> - 2019-11-23 06:39 -0800
      Re: curiosity about compiler phases Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2019-11-23 09:46 -0500
        Re: curiosity about compiler phases Richard Damon <Richard@Damon-Family.org> - 2019-11-23 10:16 -0500
      Re: curiosity about compiler phases Bart <bc@freeuk.com> - 2019-11-23 16:13 +0000
        Re: curiosity about compiler phases Thiago Adams <thiago.adams@gmail.com> - 2019-11-25 03:24 -0800
  Re: curiosity about compiler phases Bonita Montero <Bonita.Montero@gmail.com> - 2019-11-23 08:43 +0100

csiph-web