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


Groups > comp.lang.c > #140228

Re: Compiler tests

From David Brown <david.brown@hesbynett.no>
Newsgroups comp.lang.c
Subject Re: Compiler tests
Date 2019-01-25 11:11 +0100
Organization A noiseless patient Spider
Message-ID <q2enc0$256$1@dont-email.me> (permalink)
References (17 earlier) <87o987xgxl.fsf@bsb.me.uk> <q2alb9$sg7$1@dont-email.me> <87imyfxcnu.fsf@bsb.me.uk> <q2c4p0$6i3$1@dont-email.me> <871s51y7aq.fsf@bsb.me.uk>

Show all headers | View raw


On 25/01/2019 00:17, Ben Bacarisse wrote:
> David Brown <david.brown@hesbynett.no> writes:
> 
>> On 23/01/2019 22:54, Ben Bacarisse wrote:
> <snip>
>>> In Algol 68 (one of the first languages to get this right)
>>>
>>>   INT x = f(y);
>>>
>>> calls f at run-time (optimisations aside) and names the resulting value
>>> x.  You can't take the address of x because it's has no storage (again
>>> "as if rules" aside), and you can't alter x because it is not a
>>> variable.
>>
>> I don't see how that differs from C++ :
>>
>> 	const int x = f(y);
>>
>> You /can/ take the address of x, but that doesn't matter.
> 
> Hmm...  why does it not matter?  The point is that the C++ statement
> says something different to the Algol 68 statement.  In the C++ case, x
> must have an observable representation because x denotes an object not a
> value.  It's just nice to be able to write what one means without being
> obliged to say more.

In what circumstances would you have a named constant value that does
not have a representation?  Does an Algol "INT" represent an abstract
integer type, perhaps with unlimited size, rather than a concrete type?
 (That would be interesting.)

I agree that it is nice to be able to write what you mean - no more and
no less.  But it is rarely possible in programming to get exactly that.

Sometimes it is good to have restrictions on how we can use things
(objects, functions, whatever) in code.  Declaring objects "const" can
make it easier to be sure code is correct, help detect mistakes, and
possibly improve optimisation.  So adding an explicit restriction helps.

But I simply don't see any major benefit in a "no address" restriction.
 I see plenty of efficiency benefit in the compiler being able to avoid
making an object in memory if it does not need to - but that is an
implementation issue.  How often have you seen the storage class
"register" used in C (or C++) programming as a way of saying "don't
allow the address of this to be taken", rather than as an optimiser hint
for old compilers?  I would estimate that if you surveyed all the
regulars in this group and added them together, you still would not need
two hands to count the cases.  It just isn't something people find
relevant, AFAICS.


> 
>> If the
>> calculations for f(y) and the use of x are such that storage is not
>> needed, storage will not be used.  If storage is needed, it /will/ be
>> used.  And in Algol, I assume the same applies.
> 
> That should not dictate what one expresses in the language.  For
> example, most C implementations don't put const objects into
> non-modifiable storage.  None the less, const has a meaning in C
> independently of how it may or may not be implemented.
> 

Certainly "const" is about expressing intention and desired restrictions
on access, rather than a concrete demand about object placement.
(Though many implementations /do/ put it in non-modifiable storage, or
memory segments that are made read-only after loading.)

>> C won't let you do this outside a function, which is a limitation.
> 
> Yes.  C's limited provision for such things was the original point.
> 

And I agree that this is an unfortunate limitation of C.  It does not
stop you being able to do most of what you might want with constant data
in C, but it certainly could be neater and more flexible.

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


Thread

Compiler tests Bart <bc@freeuk.com> - 2019-01-20 00:03 +0000
  Re: Compiler tests Ian Collins <ian-news@hotmail.com> - 2019-01-20 16:52 +1300
    Re: Compiler tests "Pascal J. Bourguignon" <pjb@informatimago.com> - 2019-01-20 10:27 +0100
      Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-20 12:37 +0100
        Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-20 13:08 +0000
          Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-20 15:02 +0000
            Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-20 17:31 +0100
              Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-20 17:08 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-20 21:40 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-20 22:41 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-21 00:39 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-21 00:36 +0000
                Re: Compiler tests Ian Collins <ian-news@hotmail.com> - 2019-01-21 16:33 +1300
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-21 11:58 +0000
                Re: Compiler tests Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2019-01-21 04:15 -0800
                Re: Compiler tests Ian Collins <ian-news@hotmail.com> - 2019-01-22 07:53 +1300
                Re: Compiler tests BGB <cr88192@hotmail.com> - 2019-01-23 01:15 -0600
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-23 12:00 +0000
                Re: Compiler tests Ian Collins <ian-news@hotmail.com> - 2019-01-24 08:13 +1300
                Re: Compiler tests BGB <cr88192@hotmail.com> - 2019-01-23 13:30 -0600
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-21 08:22 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-21 12:23 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-21 14:42 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-21 14:17 +0000
                Re: Compiler tests Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2019-01-21 12:46 -0800
                You guys really, really need to get a room (Was: Compiler tests) gazelle@shell.xmission.com (Kenny McCormack) - 2019-01-24 14:05 +0000
          Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-20 17:27 +0100
            Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-20 17:19 +0000
              Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-21 09:44 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-21 12:49 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-21 15:31 +0100
                Re: Compiler tests jacobnavia <jacob@jacob.remcomp.fr> - 2019-01-21 14:38 +0100
                Re: Compiler tests "Pascal J. Bourguignon" <pjb@informatimago.com> - 2019-01-21 15:15 +0100
                Re: Compiler tests jacobnavia <jacob@jacob.remcomp.fr> - 2019-01-21 16:05 +0100
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-21 16:39 +0100
                Re: Compiler tests Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2019-01-21 12:51 -0800
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-22 00:16 +0000
                Re: Compiler tests jacobnavia <jacob@jacob.remcomp.fr> - 2019-01-22 08:43 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-22 12:31 +0000
                Re: Compiler tests jacobnavia <jacob@jacob.remcomp.fr> - 2019-01-22 17:49 +0100
                Re: Compiler tests jacobnavia <jacob@jacob.remcomp.fr> - 2019-01-23 11:04 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-23 11:18 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-21 15:35 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-21 15:49 +0000
                Re: Compiler tests "Pascal J. Bourguignon" <pjb@informatimago.com> - 2019-01-21 17:42 +0100
                Re: Compiler tests BGB <cr88192@hotmail.com> - 2019-01-23 03:18 -0600
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-23 11:11 +0100
                Re: Compiler tests BGB <cr88192@hotmail.com> - 2019-01-23 12:18 -0600
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-23 13:56 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-22 10:55 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-22 12:07 +0000
                Re: Compiler tests fir <profesor.fir@gmail.com> - 2019-01-22 04:29 -0800
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-22 12:52 +0000
                Re: Compiler tests mark.bluemel@gmail.com - 2019-01-22 05:04 -0800
                Re: Compiler tests fir <profesor.fir@gmail.com> - 2019-01-22 05:18 -0800
                Re: Compiler tests fir <profesor.fir@gmail.com> - 2019-01-22 05:45 -0800
                Re: Compiler tests fir <profesor.fir@gmail.com> - 2019-01-22 05:35 -0800
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-22 15:10 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-22 17:30 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-22 23:02 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-22 23:14 +0000
                Re: Compiler tests Keith Thompson <kst-u@mib.org> - 2019-01-22 15:45 -0800
                Re: Compiler tests Robert Wessel <robertwessel2@yahoo.com> - 2019-01-22 17:57 -0600
                Re: Compiler tests Keith Thompson <kst-u@mib.org> - 2019-01-22 16:36 -0800
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-23 01:37 +0000
                Re: Compiler tests Keith Thompson <kst-u@mib.org> - 2019-01-22 18:53 -0800
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-23 09:42 +0100
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-23 09:22 +0100
                Re: Compiler tests James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-01-23 08:52 -0500
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-23 15:13 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-23 14:33 +0000
                Re: Compiler tests James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-01-23 07:30 -0800
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-23 16:05 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-23 17:17 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-23 16:29 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-23 22:04 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-23 21:50 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-24 10:45 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-24 11:55 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-24 13:58 +0100
                Re: Compiler tests mark.bluemel@gmail.com - 2019-01-24 05:07 -0800
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-24 14:10 +0000
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-24 14:18 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-24 15:51 +0100
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-24 15:44 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-24 17:32 +0000
                Re: Compiler tests scott@slp53.sl.home (Scott Lurndal) - 2019-01-24 19:07 +0000
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-24 20:14 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-24 22:24 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-24 22:46 +0000
                Re: Compiler tests Ian Collins <ian-news@hotmail.com> - 2019-01-25 12:34 +1300
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-25 01:01 +0000
                Re: Compiler tests Ian Collins <ian-news@hotmail.com> - 2019-01-25 14:15 +1300
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-25 10:05 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-25 14:51 +0000
                Re: Compiler tests Mateusz Viste <mateusz@wont.tell> - 2019-01-25 09:48 +0000
                Re: Compiler tests "Pascal J. Bourguignon" <pjb@informatimago.com> - 2019-01-25 10:56 +0100
                Re: Compiler tests Mateusz Viste <mateusz@wont.tell> - 2019-01-25 12:08 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-25 13:28 +0100
                Re: Compiler tests Mateusz Viste <mateusz@wont.tell> - 2019-01-25 13:33 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-25 15:38 +0100
                Re: Compiler tests Mateusz Viste <mateusz@wont.tell> - 2019-01-25 15:08 +0000
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-25 13:53 +0000
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-25 12:25 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-25 10:03 +0100
                Re: Compiler tests "Pascal J. Bourguignon" <pjb@informatimago.com> - 2019-01-25 10:08 +0100
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-25 11:14 +0100
                Re: Compiler tests "Pascal J. Bourguignon" <pjb@informatimago.com> - 2019-01-25 12:02 +0100
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-25 13:37 +0100
                Re: Compiler tests "Pascal J. Bourguignon" <pjb@informatimago.com> - 2019-01-25 13:58 +0100
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-25 14:26 +0100
                Re: Compiler tests "Pascal J. Bourguignon" <pjb@informatimago.com> - 2019-01-25 15:01 +0100
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-25 15:42 +0100
                Re: Compiler tests Keith Thompson <kst-u@mib.org> - 2019-01-25 10:25 -0800
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-25 14:37 +0000
                Re: Compiler tests "Pascal J. Bourguignon" <pjb@informatimago.com> - 2019-01-25 16:33 +0100
                Re: Compiler tests Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2019-01-25 07:44 -0800
                Re: Compiler tests "Pascal J. Bourguignon" <pjb@informatimago.com> - 2019-01-25 17:53 +0100
                Re: Compiler tests Keith Thompson <kst-u@mib.org> - 2019-01-25 10:33 -0800
                Re: Compiler tests "Pascal J. Bourguignon" <pjb@informatimago.com> - 2019-01-25 20:43 +0100
                Re: Compiler tests Keith Thompson <kst-u@mib.org> - 2019-01-25 12:17 -0800
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-25 18:31 +0000
                Re: Compiler tests "Pascal J. Bourguignon" <pjb@informatimago.com> - 2019-01-25 20:41 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-25 21:19 +0000
                Re: Compiler tests Ian Collins <ian-news@hotmail.com> - 2019-01-26 10:24 +1300
                Re: Compiler tests "Pascal J. Bourguignon" <pjb@informatimago.com> - 2019-01-25 22:27 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-25 22:39 +0000
                Re: Compiler tests Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-01-25 18:46 +0000
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-25 12:43 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-25 14:37 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-25 14:19 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-25 15:47 +0100
                Re: Compiler tests Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2019-01-25 07:17 -0800
                Re: Compiler tests Jorgen Grahn <grahn+nntp@snipabacken.se> - 2019-02-03 07:28 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-02-03 12:35 +0100
                Re: Compiler tests Jorgen Grahn <grahn+nntp@snipabacken.se> - 2019-02-03 21:47 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-02-03 22:57 +0100
                Re: Compiler tests Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2019-01-24 06:47 -0800
                Re: Compiler tests Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-01-23 20:22 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-23 22:12 +0100
                Re: Compiler tests Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-01-23 21:54 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-24 11:41 +0100
                Re: Compiler tests Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-01-24 23:17 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-25 11:11 +0100
                Re: Compiler tests Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-01-25 12:04 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-25 14:05 +0100
                Re: Compiler tests Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-01-25 18:40 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-25 22:36 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-25 22:15 +0000
                Re: Compiler tests scott@slp53.sl.home (Scott Lurndal) - 2019-01-25 14:48 +0000
                Re: Compiler tests scott@slp53.sl.home (Scott Lurndal) - 2019-01-25 14:46 +0000
                Re: Compiler tests Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-01-25 17:48 +0000
                Re: Compiler tests James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-01-23 08:23 -0800
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-23 16:41 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-23 16:18 +0000
                Re: Compiler tests David Brown <david.brown@hesbynett.no> - 2019-01-23 17:28 +0100
                Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-23 20:23 +0000
                Re: Compiler tests Robert Wessel <robertwessel2@yahoo.com> - 2019-01-22 17:52 -0600
          Re: Compiler tests Bart <bc@freeuk.com> - 2019-01-20 20:17 +0000
    Re: Compiler tests BGB <cr88192@hotmail.com> - 2019-01-21 00:13 -0600

csiph-web