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


Groups > comp.lang.c > #166023

Re: operator precedence

Newsgroups comp.lang.c
Date 2022-04-29 03:01 -0700
References (10 earlier) <87y1zqmkol.fsf@bsb.me.uk> <t4di33$48o$1@dont-email.me> <871qxhmtjo.fsf@bsb.me.uk> <20220428134915.360@kylheku.com> <t4g66o$otp$1@dont-email.me>
Message-ID <a7dacaa3-157a-4fbe-84e2-c2e006f34afdn@googlegroups.com> (permalink)
Subject Re: operator precedence
From Malcolm McLean <malcolm.arthur.mclean@gmail.com>

Show all headers | View raw


On Friday, 29 April 2022 at 09:04:53 UTC+1, David Brown wrote:
> On 28/04/2022 22:51, Kaz Kylheku wrote: 
> > On 2022-04-28, Ben <ben.u...@bsb.me.uk> wrote: 
> >> David Brown <david...@hesbynett.no> writes: 
> >> 
> >>> On 27/04/2022 20:43, Ben wrote: 
> >>>> David Brown <david...@hesbynett.no> writes: 
> >>>> 
> >>>>> You don't need parenthesis because in written mathematics, size of 
> >>>>> spacing /is/ significant. 
> >>>> Is it? Where can I find out about this? 
> >>>> 
> >>> 
> >>> I mean the way you space things in how you write mathematics gives 
> >>> additional information, in a way that cannot be done in a programming 
> >>> language. 
> >>> 
> >>> If you see mathematics written : 
> >>> 
> >>> 10 × 2+3 
> >>> 
> >>> you'll interpret it differently from : 
> >>> 
> >>> 10×2 + 3 
> >> 
> >> Where does this come from? 
> > 
> > Human error; some people will make the mistake some of the time 
> > due to following visual clues over formal syntax, mistaking 
> > closer spacing for tighter binding. 
> > 
> > It't the same as: 
> > 
> > char* p, q; // oops, q is of type char, not char *. 
> > 
> >
> Yes. 
> 
> Spacing influences how people read things - it is significant to people. 
> It does not affect how the compiler sees things (once you have the 
> bare minimum for the syntax, of course). So IMHO using spacing as an 
> extra clue to intent is useful in written mathematics, but can be 
> directly counter-productive in programming - it is akin to using 
> comments to say something that could be better expressed in code. Of 
> course you should still use spacing to make things as clear as you 
> reasonably can (and thus write "char *p, q;" - though it is usually much 
> better to write them separately as "char *p; char q;"). But it is a 
> mistake to use human-only indicators of intent when you can use 
> something that is interpreted equally by humans and the compiler.
>
You can't have it both ways. Either you advise using spacing to help
indicate intent, or you don't.
In fact I would advise doing so.

image[y*width + x] = col;

is arguably a bit easier to read because it is more obvious that the width
associates with the y.
Of course the language itself won't treat whitespace as significant, and
that's also a wise decision - we don't want to change the long-established
mathematical conventions. 
When parentheses are not strictly necessary, but it's not obvious what the 
precedence is, as in

rack << Nbits + 1;

You could either using spacing or parentheses to give an extra cue. I would
advise parentheses to make it absolutely unambiguous, however remembering
the rule of three for nesting.

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


Thread

Re: operator precedence Guillaume <message@bottle.org> - 2022-04-10 20:01 +0200
  Re: operator precedence Ben <ben.usenet@bsb.me.uk> - 2022-04-10 20:34 +0100
    Re: operator precedence Guillaume <message@bottle.org> - 2022-04-11 20:52 +0200
      Re: operator precedence Ben <ben.usenet@bsb.me.uk> - 2022-04-11 21:27 +0100
        Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-14 13:38 +0200
          Re: operator precedence Ben <ben.usenet@bsb.me.uk> - 2022-04-14 14:07 +0100
            Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-18 14:00 +0200
        Re: operator precedence Guillaume <message@bottle.org> - 2022-04-15 19:28 +0200
          Re: operator precedence Ben <ben.usenet@bsb.me.uk> - 2022-04-15 19:25 +0100
            Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-18 14:12 +0200
              Re: operator precedence Kaz Kylheku <480-992-1380@kylheku.com> - 2022-04-18 16:38 +0000
                Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-18 19:20 +0200
                Re: operator precedence Kaz Kylheku <480-992-1380@kylheku.com> - 2022-04-19 17:40 +0000
                Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-19 22:41 +0200
              Re: operator precedence James Kuyper <jameskuyper@alumni.caltech.edu> - 2022-04-18 23:08 -0400
                Re: operator precedence Tim Rentsch <tr.17687@z991.linuxsc.com> - 2022-04-25 08:40 -0700
                Re: operator precedence "james...@alumni.caltech.edu" <jameskuyper@alumni.caltech.edu> - 2022-04-25 10:35 -0700
  Re: operator precedence Vir Campestris <vir.campestris@invalid.invalid> - 2022-04-10 21:51 +0100
  Re: operator precedence Bonita Montero <Bonita.Montero@gmail.com> - 2022-04-11 11:35 +0200
  Re: operator precedence gazelle@shell.xmission.com (Kenny McCormack) - 2022-04-11 13:53 +0000
  Re: operator precedence Guillaume <message@bottle.org> - 2022-04-11 20:36 +0200
  Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-14 13:14 +0200
  Re: operator precedence Tim Rentsch <tr.17687@z991.linuxsc.com> - 2022-04-25 11:10 -0700
    Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-25 20:52 +0200
      Re: operator precedence Ben <ben.usenet@bsb.me.uk> - 2022-04-25 21:18 +0100
        Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-26 15:30 +0200
          Re: operator precedence Ben <ben.usenet@bsb.me.uk> - 2022-04-26 15:58 +0100
            Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-26 21:19 +0200
              Re: operator precedence Sams Lara <samlara622@gmail.com> - 2022-04-27 02:15 +0100
                Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-27 09:13 +0200
                Re: operator precedence Ben <ben.usenet@bsb.me.uk> - 2022-04-27 19:43 +0100
                Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-28 10:09 +0200
                Re: operator precedence Ben <ben.usenet@bsb.me.uk> - 2022-04-28 10:44 +0100
                Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-28 11:59 +0200
                Re: operator precedence Giovanni <lsodgf0@home.net.it> - 2022-04-28 12:29 +0200
                Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-28 12:56 +0200
                Re: operator precedence Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2022-04-28 04:17 -0700
                Re: operator precedence Ben <ben.usenet@bsb.me.uk> - 2022-04-28 12:24 +0100
                Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-28 14:28 +0200
                Re: operator precedence Dan Purgert <dan@djph.net> - 2022-04-28 14:00 +0000
                Re: operator precedence Dan Purgert <dan@djph.net> - 2022-04-28 14:38 +0000
                Re: operator precedence Ben <ben.usenet@bsb.me.uk> - 2022-04-28 20:36 +0100
                Re: operator precedence Richard Harnden <richard.nospam@gmail.com> - 2022-04-28 21:22 +0100
                Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-29 09:43 +0200
                Re: operator precedence Kaz Kylheku <480-992-1380@kylheku.com> - 2022-04-28 20:51 +0000
                Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-29 10:04 +0200
                Re: operator precedence Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2022-04-29 03:01 -0700
                Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-29 15:02 +0200
                Re: operator precedence James Kuyper <jameskuyper@alumni.caltech.edu> - 2022-04-29 10:48 -0400
                Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-29 17:29 +0200
            Re: operator precedence bart c <bart4858@gmail.com> - 2022-04-26 14:30 -0700
              Re: operator precedence Ben <ben.usenet@bsb.me.uk> - 2022-04-27 00:00 +0100
              Re: operator precedence David Brown <david.brown@hesbynett.no> - 2022-04-27 09:46 +0200
          Re: operator precedence Öö Tiib <ootiib@hot.ee> - 2022-04-27 00:10 -0700
    Re: operator precedence scott@slp53.sl.home (Scott Lurndal) - 2022-04-25 19:02 +0000
      Re: operator precedence Ben <ben.usenet@bsb.me.uk> - 2022-04-25 21:38 +0100
        Re: operator precedence Tim Rentsch <tr.17687@z991.linuxsc.com> - 2022-04-25 22:22 -0700

csiph-web