Deutsch   English   Français   Italiano  
<20240707164747.258@kylheku.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.nobody.at!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Kaz Kylheku <643-408-1753@kylheku.com>
Newsgroups: comp.lang.c
Subject: Re: technology discussion =?UTF-8?Q?=E2=86=92?= does the world need
 a "new" C ?
Date: Mon, 8 Jul 2024 00:02:39 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 51
Message-ID: <20240707164747.258@kylheku.com>
References: <v66eci$2qeee$1@dont-email.me> <v67gt1$2vq6a$2@dont-email.me>
 <v687h2$36i6p$1@dont-email.me> <871q48w98e.fsf@nosuchdomain.example.com>
 <v68dsm$37sg2$1@dont-email.me> <87wmlzvfqp.fsf@nosuchdomain.example.com>
 <v6ard1$3ngh6$4@dont-email.me> <v6b0jv$3nnt6$1@dont-email.me>
 <87h6d2uox5.fsf@nosuchdomain.example.com> <v6d779$6rk5$2@dont-email.me>
 <v6e76u$c0i9$1@dont-email.me> <v6esqm$fian$2@dont-email.me>
 <v6f7vg$hgam$1@dont-email.me>
Injection-Date: Mon, 08 Jul 2024 02:02:39 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="b7334c131cc9301bf72bc5f685feb065";
	logging-data="580226"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+kDOdunJtlmmaf/Z/qDEuNtarcVfvuWAc="
User-Agent: slrn/pre1.0.4-9 (Linux)
Cancel-Lock: sha1:xo5wvfJMf4XRBflmuTuWcUmehuA=
Bytes: 3598

On 2024-07-07, James Kuyper <jameskuyper@alumni.caltech.edu> wrote:
> On 7/7/24 16:10, BGB wrote:
>> On 7/7/2024 9:03 AM, James Kuyper wrote:
>>> On 7/7/24 00:55, BGB wrote:
>>>> On 7/6/2024 5:38 PM, Keith Thompson wrote:
>>> ...
>>>>> No, there is no implicitly defined pointer.
>>> ...
>>>> This implicit pointer need not exist at a location in memory...
>>>
>>> Which is why C doesn't give you access to it's location in memory -
>>> something you complained about earlier.
>>
>> I don't think I was claiming that one should have direct access to its
>> location or value within the language, rather that their existence and
>> behaviors could be acknowledged in the language design (for a "not
>> quite C" language).
>
> I think that the existence of an implicit pointer would be a bad thing
> to acknowledge, given that the language doesn't require that it exist,
> and typical implementations don't use them. From what I understand, the
> fact that your implementation does have implicit pointers makes it a rarity.

Ritchie's B language had arrays which contained a pointer to their
first element. Via a hack, it was possible to relocate an array.

In C, such a thing is not simply not required; it is ruled out
by the detailed semantic description of arrays.

The entire representation of an array of size N elements of type
T is contained in the memory block that is sizeo(T)*N bytes wide.

If you copy that block, you have a fully functional copy of the array.
No extra pointer needs to be set up with the correct value.

Furthermore, to dynamically allocate an array, you need only
provide sizeof(T)*N bytes of storage, and not a bit more.

There is simply nowhere in the representation of an array where
a pointer could hide that is part of the representation.

Code that manipulates arrays can be translated into something that
calculates a pointer. So a pointer can exist at run time, in a transient
way, perhaps in a register. That register can even be spilled into
memory. However, that's just part of the state of an evolving
calculation, not part of the representation of the array.

-- 
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
Mastodon: @Kazinator@mstdn.ca