Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

"Don't think; let the machine do it for you!" -- E. C. Berkeley


devel / comp.lang.c / C isn't a programming language

SubjectAuthor
* C isn't a programming languageRichard Harnden
+* Re: C isn't a programming languageScott Lurndal
|+* Re: C isn't a programming languageGuillaume
||+* Re: C isn't a programming languageKeith Thompson
|||+* Re: C isn't a programming languageBGB
||||`* Re: C isn't a programming languageKeith Thompson
|||| +- Re: C isn't a programming languageBGB
|||| `- Re: C isn't a programming languageGuillaume
|||`* Re: C isn't a programming languageantispam
||| +* Re: C isn't a programming languageGuillaume
||| |`* Re: C isn't a programming languageantispam
||| | `* Re: C isn't a programming languageGuillaume
||| |  +- Re: C isn't a programming languageStefan Ram
||| |  +* Re: C isn't a programming languageantispam
||| |  |`- Re: C isn't a programming languageKaz Kylheku
||| |  `- Re: C isn't a programming languageTim Rentsch
||| `- Re: C isn't a programming languageTim Rentsch
||+- Re: C isn't a programming languageKaz Kylheku
||`* Re: C isn't a programming languageBart
|| `* Re: C isn't a programming languageManfred
||  +* Re: C isn't a programming languageBonita Montero
||  |`* Re: C isn't a programming languageMalcolm McLean
||  | +- Re: C isn't a programming languageBen Bacarisse
||  | `- Re: C isn't a programming languageBonita Montero
||  `* Re: C isn't a programming languageBart
||   +* Re: C isn't a programming languageDavid Brown
||   |`* Re: C isn't a programming languageBart
||   | `- Re: C isn't a programming languageDavid Brown
||   `* Re: C isn't a programming languageManfred
||    `* Re: C isn't a programming languageBart
||     +- Re: C isn't a programming languageBart
||     +* Re: C isn't a programming languageBen Bacarisse
||     |`* Re: C isn't a programming languageManfred
||     | `* Re: C isn't a programming languageBen Bacarisse
||     |  `- Re: C isn't a programming languageManfred
||     `* Re: C isn't a programming languageDavid Brown
||      `* Re: C isn't a programming languageKaz Kylheku
||       `* Re: C isn't a programming languageDavid Brown
||        `* Re: C isn't a programming languageBen Bacarisse
||         +* Re: C isn't a programming languageDavid Brown
||         |`- Re: C isn't a programming languageMalcolm McLean
||         `- Re: C isn't a programming languageKaz Kylheku
|+- Re: C isn't a programming languageKeith Thompson
|+- Re: C isn't a programming languagerek2 hispagatos
|`- Re: C isn't a programming languageantispam
+* Re: C isn't a programming languageBen Bacarisse
|`* Re: C isn't a programming languageBart
| +* Re: C isn't a programming languageJack Noddy
| |`- Re: C isn't a programming languageBart
| `* Re: C isn't a programming languageBen Bacarisse
|  `* Re: C isn't a programming languageGuillaume
|   `- Re: C isn't a programming languageBart
+- Re: C isn't a programming languageIan Pilcher
+* Re: C isn't a programming languagerek2 hispagatos
|`- Re: C isn't a programming languageBonita Montero
+* Re: C isn't a programming languageStefan Ram
|+- Re: C isn't a programming languageBen Bacarisse
|`* Re: C isn't a programming languageBonita Montero
| +* Re: C isn't a programming languageLew Pitcher
| |+* Re: C isn't a programming languageBonita Montero
| ||`* Re: C isn't a programming languageLew Pitcher
| || +* Re: C isn't a programming languageStefan Ram
| || |`- Re: C isn't a programming languageScott Lurndal
| || +- Re: C isn't a programming languageStefan Ram
| || `- Re: C isn't a programming languageBonita Montero
| |+- Re: C isn't a programming languageManfred
| |`* Re: C isn't a programming languageBen Bacarisse
| | `- Re: C isn't a programming languageScott Lurndal
| `- Re: C isn't a programming languagerek2 hispagatos
+- Re: C isn't a programming languageStefan Ram
+- Re: C isn't a programming languageJorgen Grahn
`- Re: C isn't a programming languagefir

Pages:123
C isn't a programming language

<t1i34t$m94$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20963&group=comp.lang.c#20963

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: richard....@gmail.com (Richard Harnden)
Newsgroups: comp.lang.c
Subject: C isn't a programming language
Date: Thu, 24 Mar 2022 15:35:51 +0000
Organization: A noiseless patient Spider
Lines: 3
Message-ID: <t1i34t$m94$1@dont-email.me>
Reply-To: nospam.harnden@gmail.com
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 24 Mar 2022 15:35:57 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="07008f01696bd211f3c35b159bcfbc4c";
logging-data="22820"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+oEG4gUhgBNmqg7+mJSKv/hkONrZi4Fu0="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.7.0
Cancel-Lock: sha1:vGbb4wx9OUxY8WqHWm/+o7kEXxA=
 by: Richard Harnden - Thu, 24 Mar 2022 15:35 UTC

"C: Everyone's favourite programming language isn't a programming language"

Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>

Re: C isn't a programming language

<7m0%J.469671$oF2.277206@fx10.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20964&group=comp.lang.c#20964

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx10.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: sco...@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: C isn't a programming language
Newsgroups: comp.lang.c
References: <t1i34t$m94$1@dont-email.me>
Lines: 7
Message-ID: <7m0%J.469671$oF2.277206@fx10.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Thu, 24 Mar 2022 15:45:07 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Thu, 24 Mar 2022 15:45:07 GMT
X-Received-Bytes: 982
 by: Scott Lurndal - Thu, 24 Mar 2022 15:45 UTC

Richard Harnden <richard.nospam@gmail.com> writes:
>"C: Everyone's favourite programming language isn't a programming language"
>
>Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>

The article doesn't make a whole lot of sense - it's basically just
bitching because swift and rust can't do everything that C can.

Re: C isn't a programming language

<t1ibau$mtp$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20965&group=comp.lang.c#20965

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!aioe.org!NWBQctYDi7NlCOQPK8oY6A.user.46.165.242.75.POSTED!not-for-mail
From: mess...@bottle.org (Guillaume)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Thu, 24 Mar 2022 18:55:38 +0100
Organization: Aioe.org NNTP Server
Message-ID: <t1ibau$mtp$1@gioia.aioe.org>
References: <t1i34t$m94$1@dont-email.me> <7m0%J.469671$oF2.277206@fx10.iad>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="23481"; posting-host="NWBQctYDi7NlCOQPK8oY6A.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.7.0
Content-Language: fr
X-Notice: Filtered by postfilter v. 0.9.2
 by: Guillaume - Thu, 24 Mar 2022 17:55 UTC

Le 24/03/2022 à 16:45, Scott Lurndal a écrit :
> Richard Harnden <richard.nospam@gmail.com> writes:
>> "C: Everyone's favourite programming language isn't a programming language"
>>
>> Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>
>
> The article doesn't make a whole lot of sense - it's basically just
> bitching because swift and rust can't do everything that C can.

And you're putting it lightly.
Of course, first thing, without even reading it, is questioning the
relevance of such articles written by heavy proponents of "alternative"
languages. How much more biased can one be?

Digging a bit deeper, there is nothing much to even take from this short
article. It's pretty shallow.

- C is difficult to parse? C declarations are, for instance, not exactly
easy, but it's only very moderately difficult. You can have fun with
this to get an idea: https://cdecl.org/ . I has never made it a problem
to write a C compiler. There are more of them out there than for any
other language, I think. OTOH, there is, AFAIK, only one implementation
of Rust. Which to me is in itself a problem. I'm curious to see if it
ever even gets to the point of having other competing implementations.

- Incompatible variants? What exactly is this referring to? If you stick
to the standard, the amount of back-compatibility is one of the best
among all existing languages. That's actually one of its strong points.

- Integer arithmetics: that's admittedly not the best in C, but in most
cases for performance reasons.

The rest is indeed just a rant about other languages having to interface
with C for a lot of applications. That would be a bit like ranting that
english has become the de facto international language, while you'd
prefer it to be spanish, because uh, it's so much more elegant, or
something.

And about interfacing, I'm then also curious as to how well one could
interface with Rust and Swift on a large scale.

Re: C isn't a programming language

<874k3n19z7.fsf@nosuchdomain.example.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20966&group=comp.lang.c#20966

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: Keith.S....@gmail.com (Keith Thompson)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Thu, 24 Mar 2022 11:28:12 -0700
Organization: None to speak of
Lines: 16
Message-ID: <874k3n19z7.fsf@nosuchdomain.example.com>
References: <t1i34t$m94$1@dont-email.me> <7m0%J.469671$oF2.277206@fx10.iad>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="7e573a1def4f703974c751038b3fdcb6";
logging-data="3543"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+h3sDg8+SN1DjWGsmxvsff"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Cancel-Lock: sha1:2xog1NexY/arFYqa2uBhNok780E=
sha1:Tc3H9SZEjZCLcCRt/uOt5bRqvGQ=
 by: Keith Thompson - Thu, 24 Mar 2022 18:28 UTC

scott@slp53.sl.home (Scott Lurndal) writes:
> Richard Harnden <richard.nospam@gmail.com> writes:
>>"C: Everyone's favourite programming language isn't a programming language"
>>
>>Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>
>
> The article doesn't make a whole lot of sense - it's basically just
> bitching because swift and rust can't do everything that C can.

It makes some interesting and valid points -- none of which have
anything at all to do with the claim in the title.

--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
Working, but not speaking, for Philips
void Void(void) { Void(); } /* The recursive call of the void */

Re: C isn't a programming language

<87zglfyz85.fsf@nosuchdomain.example.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20967&group=comp.lang.c#20967

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: Keith.S....@gmail.com (Keith Thompson)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Thu, 24 Mar 2022 11:36:26 -0700
Organization: None to speak of
Lines: 44
Message-ID: <87zglfyz85.fsf@nosuchdomain.example.com>
References: <t1i34t$m94$1@dont-email.me> <7m0%J.469671$oF2.277206@fx10.iad>
<t1ibau$mtp$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Injection-Info: reader02.eternal-september.org; posting-host="7e573a1def4f703974c751038b3fdcb6";
logging-data="3543"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1898sKA/hdwnNsyMUmlc0Lz"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Cancel-Lock: sha1:JNzWgoCWZrXo6W8l9OM13CCSEto=
sha1:Jf2yqvmpW6rUGSykPDIb1oIie0o=
 by: Keith Thompson - Thu, 24 Mar 2022 18:36 UTC

Guillaume <message@bottle.org> writes:
> Le 24/03/2022 à 16:45, Scott Lurndal a écrit :
>> Richard Harnden <richard.nospam@gmail.com> writes:
>>> "C: Everyone's favourite programming language isn't a programming language"
>>>
>>> Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>
>> The article doesn't make a whole lot of sense - it's basically just
>> bitching because swift and rust can't do everything that C can.
>
> And you're putting it lightly.
> Of course, first thing, without even reading it, is questioning the
> relevance of such articles written by heavy proponents of
> "alternative" languages. How much more biased can one be?
>
> Digging a bit deeper, there is nothing much to even take from this
> short article. It's pretty shallow.
>
> - C is difficult to parse? C declarations are, for instance, not
> exactly easy, but it's only very moderately difficult. You can have
> fun with this to get an idea: https://cdecl.org/ . I has never made
> it a problem to write a C compiler. There are more of them out there
> than for any other language, I think. OTOH, there is, AFAIK, only one
> implementation of Rust. Which to me is in itself a problem. I'm
> curious to see if it ever even gets to the point of having other
> competing implementations.

It's probably referring to the typedef issue.

In the absence of typedefs, type names consist of keywords and
punctuation. A typedef (a feature that was added to the language
after the syntax had been established) creates a type name that's an
identifier. It's impossible to parse something that uses a typedef name
without knowing that it's a typedef name. In effect a typedef adds a
context-sensitive keyword to the grammar. The parser needs to query the
symbol table.

But it's a solved problem and not that big a deal.

[...]

--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
Working, but not speaking, for Philips
void Void(void) { Void(); } /* The recursive call of the void */

Re: C isn't a programming language

<875yo3f9ek.fsf@bsb.me.uk>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20968&group=comp.lang.c#20968

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ben.use...@bsb.me.uk (Ben Bacarisse)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Thu, 24 Mar 2022 19:16:51 +0000
Organization: A noiseless patient Spider
Lines: 10
Message-ID: <875yo3f9ek.fsf@bsb.me.uk>
References: <t1i34t$m94$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="78c7aa729bd6a3a0acfdd4b6ad03f8ab";
logging-data="848"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19eqfHj+QmsZVPiXgw0gWFfs6uL5Jabmvo="
Cancel-Lock: sha1:XVPREdeBEqgDhU8qPhDiFkCqwFc=
sha1:TnASxIY4ECwBkM9vFPxodWFZTWA=
X-BSB-Auth: 1.948a0f09656babced4ba.20220324191651GMT.875yo3f9ek.fsf@bsb.me.uk
 by: Ben Bacarisse - Thu, 24 Mar 2022 19:16 UTC

Richard Harnden <richard.nospam@gmail.com> writes:

> "C: Everyone's favourite programming language isn't a programming language"
>
> Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>

Is this a click bait article? The answer might surprise you!

--
Ben.

Re: C isn't a programming language

<20220324140626.291@kylheku.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20969&group=comp.lang.c#20969

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: 480-992-...@kylheku.com (Kaz Kylheku)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Thu, 24 Mar 2022 21:18:31 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 46
Message-ID: <20220324140626.291@kylheku.com>
References: <t1i34t$m94$1@dont-email.me> <7m0%J.469671$oF2.277206@fx10.iad>
<t1ibau$mtp$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 24 Mar 2022 21:18:31 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="51b05929df61a464761fe6eb03612bfc";
logging-data="25831"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19sWjJS11IljTlnl9969OetNLi5iSLACk8="
User-Agent: slrn/1.0.3 (Linux)
Cancel-Lock: sha1:TbwurfhG9E92qyW9woVHiB1fDQQ=
 by: Kaz Kylheku - Thu, 24 Mar 2022 21:18 UTC

On 2022-03-24, Guillaume <message@bottle.org> wrote:
> Le 24/03/2022 à 16:45, Scott Lurndal a écrit :
>> Richard Harnden <richard.nospam@gmail.com> writes:
>>> "C: Everyone's favourite programming language isn't a programming language"
>>>
>>> Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>
>>
>> The article doesn't make a whole lot of sense - it's basically just
>> bitching because swift and rust can't do everything that C can.
>
> And you're putting it lightly.
> Of course, first thing, without even reading it, is questioning the
> relevance of such articles written by heavy proponents of "alternative"
> languages. How much more biased can one be?

One can be accurate in promoting. This article shows a lack of
understanding of the difference between a binary interface, and a
programming language.

There is a relationship in that the C language is oriented toward
working with "value types" which describe objects having a concrete
layout in memory.

Manhy platforms have an ABI that is part of a locus of documents
and software that includes a toolchain with a C compiler.

Specific binary interfaces such as libraries are often accompanied
by C headers. Those headers do not give the full semantics; it is a
fallacy to believe that those binary interfaces are "C language"
interfaces just because there are C headers.

The Gnome project, for instance uses an XML notation to describe
binary interfaces, and that XML notation gives semantic details like
ownership of memory passed by pointer and whatnot.

You can process that XML to produce FFI bindings without touching a C
header file.

Now, software components that are actually written in C will have "easy"
binary interfaces, by and large, in the sense that there won't be a lot
of difficult to handle compiler-generated boiler plate in the data
structuring (as might be in the case of C++ objects, say).

These Rust and Swift and whatnot pushing scallywags should count
themselves fortunate and express gratitude when they have an easy target
to hit due to some binary interface being designed and implemented in C.

Re: C isn't a programming language

<t1ioln$cls$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20970&group=comp.lang.c#20970

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: cr88...@gmail.com (BGB)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Thu, 24 Mar 2022 16:43:18 -0500
Organization: A noiseless patient Spider
Lines: 90
Message-ID: <t1ioln$cls$1@dont-email.me>
References: <t1i34t$m94$1@dont-email.me> <7m0%J.469671$oF2.277206@fx10.iad>
<t1ibau$mtp$1@gioia.aioe.org> <87zglfyz85.fsf@nosuchdomain.example.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 24 Mar 2022 21:43:19 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="82de82794c627957d0b2aa4e1623b11d";
logging-data="12988"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/6m8bzDH9Iyj7ooX+F/vdj"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.6.1
Cancel-Lock: sha1:G/eB69Or+lWTmoI/f9F2UKeJhWQ=
In-Reply-To: <87zglfyz85.fsf@nosuchdomain.example.com>
Content-Language: en-US
 by: BGB - Thu, 24 Mar 2022 21:43 UTC

On 3/24/2022 1:36 PM, Keith Thompson wrote:
> Guillaume <message@bottle.org> writes:
>> Le 24/03/2022 à 16:45, Scott Lurndal a écrit :
>>> Richard Harnden <richard.nospam@gmail.com> writes:
>>>> "C: Everyone's favourite programming language isn't a programming language"
>>>>
>>>> Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>
>>> The article doesn't make a whole lot of sense - it's basically just
>>> bitching because swift and rust can't do everything that C can.
>>
>> And you're putting it lightly.
>> Of course, first thing, without even reading it, is questioning the
>> relevance of such articles written by heavy proponents of
>> "alternative" languages. How much more biased can one be?
>>
>> Digging a bit deeper, there is nothing much to even take from this
>> short article. It's pretty shallow.
>>
>> - C is difficult to parse? C declarations are, for instance, not
>> exactly easy, but it's only very moderately difficult. You can have
>> fun with this to get an idea: https://cdecl.org/ . I has never made
>> it a problem to write a C compiler. There are more of them out there
>> than for any other language, I think. OTOH, there is, AFAIK, only one
>> implementation of Rust. Which to me is in itself a problem. I'm
>> curious to see if it ever even gets to the point of having other
>> competing implementations.
>
> It's probably referring to the typedef issue.
>
> In the absence of typedefs, type names consist of keywords and
> punctuation. A typedef (a feature that was added to the language
> after the syntax had been established) creates a type name that's an
> identifier. It's impossible to parse something that uses a typedef name
> without knowing that it's a typedef name. In effect a typedef adds a
> context-sensitive keyword to the grammar. The parser needs to query the
> symbol table.
>
> But it's a solved problem and not that big a deal.
>

Or, at least, you can't do it "properly" without knowing the typedefs.

But, heuristics exist, say we assume that:
identifier identifier;
identifier '*' identifier;
...

Are not valid in statement context, then one can assume by extension,
that encountering one of these patterns means to interpret the first
identifier as a type name.

In some cases, one can make an assumption regarding any preceding
keywords, and whether these keywords already define a type valid (as to
whether to parse an identifier as a typename or part of the declarator),
in combination with assuming the original cases to still be invalid (if
we see this, the identifier is parsed as a typename).

....

This will parse most code OK, but if one tries to use this as a general
strategy, it may trip up occasionally.

One major problem case is casts:
x=(foo)(1, 2);
If this is meant to be a function call, it may be parsed incorrectly if
'foo' is assumed to be a type. This situation does pop up occasionally
in the wild.

....

But, yeah, if one has a preprocessor, handles typedefs during parsing,
.... then parsing C correctly isn't all that difficult.

There may be other edge cases, as I recently encountered code that did
something like:
enum vals1 {
vals1a, vals1b, vals1c, ...
};
enum vals2 {
vals2a, vals2b=vals1c, ...
};

Which required adding a new table in this case to sort out enum parsing.

If designing a new language, would prefer to avoid a dependence on prior
context during parsing, but this is its own thing.

Re: C isn't a programming language

<t1iq1k$nip$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20971&group=comp.lang.c#20971

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: bc...@freeuk.com (Bart)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Thu, 24 Mar 2022 22:06:44 +0000
Organization: A noiseless patient Spider
Lines: 18
Message-ID: <t1iq1k$nip$1@dont-email.me>
References: <t1i34t$m94$1@dont-email.me> <875yo3f9ek.fsf@bsb.me.uk>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 24 Mar 2022 22:06:44 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="bd7a8b59b1d0de701e1d0648081d5d61";
logging-data="24153"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/X/rb6X+kJNVKN5b27s8QZdwalenhevhs="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.7.0
Cancel-Lock: sha1:vNlPDCURYLGKhHR0CI1P/2KCd9Y=
In-Reply-To: <875yo3f9ek.fsf@bsb.me.uk>
 by: Bart - Thu, 24 Mar 2022 22:06 UTC

On 24/03/2022 19:16, Ben Bacarisse wrote:
> Richard Harnden <richard.nospam@gmail.com> writes:
>
>> "C: Everyone's favourite programming language isn't a programming language"
>>
>> Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>
>
> Is this a click bait article? The answer might surprise you!
>

Anything controversial always seems like clickbait to you! To me it just
seems that people finally saying what they've long thought.

Here's another recent article on the subject written more passionately,
which I suggest you don't click on either:

https://gankra.github.io/blah/c-isnt-a-language/

Re: C isn't a programming language

<t1is1k$74g$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20972&group=comp.lang.c#20972

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: bc...@freeuk.com (Bart)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Thu, 24 Mar 2022 22:40:52 +0000
Organization: A noiseless patient Spider
Lines: 37
Message-ID: <t1is1k$74g$1@dont-email.me>
References: <t1i34t$m94$1@dont-email.me> <7m0%J.469671$oF2.277206@fx10.iad>
<t1ibau$mtp$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 24 Mar 2022 22:40:52 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="bd7a8b59b1d0de701e1d0648081d5d61";
logging-data="7312"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/ZuMBKAxfiSuAK3YkpBs8wDA5HkWXlsSk="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.7.0
Cancel-Lock: sha1:JbqoIjM3sdnaBjV6WyeD2UXHtSM=
In-Reply-To: <t1ibau$mtp$1@gioia.aioe.org>
 by: Bart - Thu, 24 Mar 2022 22:40 UTC

On 24/03/2022 17:55, Guillaume wrote:
> Le 24/03/2022 à 16:45, Scott Lurndal a écrit :
>> Richard Harnden <richard.nospam@gmail.com> writes:
>>> "C: Everyone's favourite programming language isn't a programming
>>> language"
>>>
>>> Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>
>>
>> The article doesn't make a whole lot of sense - it's basically just
>> bitching because swift and rust can't do everything that C can.
>
> And you're putting it lightly.
> Of course, first thing, without even reading it, is questioning the
> relevance of such articles written by heavy proponents of "alternative"
> languages. How much more biased can one be?
>
> Digging a bit deeper, there is nothing much to even take from this short
> article. It's pretty shallow.
>
> - C is difficult to parse?

This might be within a context where C syntax is used to define an API
(eg. header files), then processing such files either manually or using
a tool can give rise to the issues mentioned.

You can't write a simple tool, you need to incorporate half of a C compiler.

C declarations are, for instance, not exactly
> easy, but it's only very moderately difficult. You can have fun with
> this to get an idea: https://cdecl.org/ .

The fact that such a tool even needs to exist isn't a giant red flag to you?

The whole point of having textual syntax in a program language is to
make it easier for humans! Needing a separate program to make sense of
it ... makes no sense.

Re: C isn't a programming language

<t1is8q$mkp$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20973&group=comp.lang.c#20973

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!aioe.org!nOqLI1EbCan+82M4Y2qJhQ.user.46.165.242.91.POSTED!not-for-mail
From: inva...@invalid.invalid (Jack Noddy)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Thu, 24 Mar 2022 22:41:04 +0000
Organization: Aioe.org NNTP Server
Message-ID: <t1is8q$mkp$1@gioia.aioe.org>
References: <t1i34t$m94$1@dont-email.me> <875yo3f9ek.fsf@bsb.me.uk>
<t1iq1k$nip$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain;
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="23193"; posting-host="nOqLI1EbCan+82M4Y2qJhQ.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-US
 by: Jack Noddy - Thu, 24 Mar 2022 22:41 UTC

On 24/03/2022 22:06, Bart wrote:
>
> Anything controversial always seems like clickbait to you!

You need to look at the background of people writing these articles. The
link you posted says this:

"I'm known for my work on Rust, Swift, and Homestuck."
<https://gankra.github.io/blah/>

That guy can never be objective about any other programming languages.
Probably he has given up learning new things about other programming
languages.

However, C does need to add libraries to make it do something else
without the users having to spend time writing their own or buying
bespoke services from others. C was created to enhance the Unix
operating System but it didn't go further than that. What now needs to
be done is to have libraries for databases, files, GUI etc like C# has done.

People should use whatever is quicker to get results. There is no point
in bashing about one particular programming language. Things have moved
on and more and more apps are run through a web browser!!. You can use
Word or Excel in any browser these days. C has failed to keep up with
this trend. How many people are still spending time enhancing an
operating system? People are writing Apps that can do something.

Re: C isn't a programming language

<87o81vdk1f.fsf@bsb.me.uk>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20974&group=comp.lang.c#20974

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ben.use...@bsb.me.uk (Ben Bacarisse)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Thu, 24 Mar 2022 23:10:04 +0000
Organization: A noiseless patient Spider
Lines: 25
Message-ID: <87o81vdk1f.fsf@bsb.me.uk>
References: <t1i34t$m94$1@dont-email.me> <875yo3f9ek.fsf@bsb.me.uk>
<t1iq1k$nip$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="3764156ced1518774c33a15cd121a188";
logging-data="19372"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18JP6qSt35FW7fI1g+MbiJnDmcIehiDKng="
Cancel-Lock: sha1:Sg+4JzZp7lCxEpR2IcATXFNSuOk=
sha1:1FrKjOCmPx0ETu65QTTiGEX1ehc=
X-BSB-Auth: 1.10393d65a7648170adb9.20220324231004GMT.87o81vdk1f.fsf@bsb.me.uk
 by: Ben Bacarisse - Thu, 24 Mar 2022 23:10 UTC

Bart <bc@freeuk.com> writes:

> On 24/03/2022 19:16, Ben Bacarisse wrote:
>> Richard Harnden <richard.nospam@gmail.com> writes:
>>
>>> "C: Everyone's favourite programming language isn't a programming language"
>>>
>>> Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>
>> Is this a click bait article? The answer might surprise you!
>
> Anything controversial always seems like clickbait to you! To me it
> just seems that people finally saying what they've long thought.

Yes, I've read articles like that for decades. But they have to have
click-bait titles these days.

> Here's another recent article on the subject written more
> passionately, which I suggest you don't click on either:
>
> https://gankra.github.io/blah/c-isnt-a-language/

Thanks for the advice -- I have followed it to the letter.

--
Ben.

Re: C isn't a programming language

<87bkxvymhe.fsf@nosuchdomain.example.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20975&group=comp.lang.c#20975

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: Keith.S....@gmail.com (Keith Thompson)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Thu, 24 Mar 2022 16:11:41 -0700
Organization: None to speak of
Lines: 131
Message-ID: <87bkxvymhe.fsf@nosuchdomain.example.com>
References: <t1i34t$m94$1@dont-email.me> <7m0%J.469671$oF2.277206@fx10.iad>
<t1ibau$mtp$1@gioia.aioe.org>
<87zglfyz85.fsf@nosuchdomain.example.com> <t1ioln$cls$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Injection-Info: reader02.eternal-september.org; posting-host="200f78cfdd1a5c242cb8c9ae55e8d8fc";
logging-data="22842"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18W8ZJ3oQ42xf5Ku1RgMa+E"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Cancel-Lock: sha1:14jWYvxLsAJSNiGVrJzjG7Yyv98=
sha1:sWi4VTocozuJ7PR7JgdPwp9JUVI=
 by: Keith Thompson - Thu, 24 Mar 2022 23:11 UTC

BGB <cr88192@gmail.com> writes:
> On 3/24/2022 1:36 PM, Keith Thompson wrote:
>> Guillaume <message@bottle.org> writes:
>>> Le 24/03/2022 à 16:45, Scott Lurndal a écrit :
>>>> Richard Harnden <richard.nospam@gmail.com> writes:
>>>>> "C: Everyone's favourite programming language isn't a programming language"
>>>>>
>>>>> Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>
>>>> The article doesn't make a whole lot of sense - it's basically just
>>>> bitching because swift and rust can't do everything that C can.
>>>
>>> And you're putting it lightly.
>>> Of course, first thing, without even reading it, is questioning the
>>> relevance of such articles written by heavy proponents of
>>> "alternative" languages. How much more biased can one be?
>>>
>>> Digging a bit deeper, there is nothing much to even take from this
>>> short article. It's pretty shallow.
>>>
>>> - C is difficult to parse? C declarations are, for instance, not
>>> exactly easy, but it's only very moderately difficult. You can have
>>> fun with this to get an idea: https://cdecl.org/ . I has never made
>>> it a problem to write a C compiler. There are more of them out there
>>> than for any other language, I think. OTOH, there is, AFAIK, only one
>>> implementation of Rust. Which to me is in itself a problem. I'm
>>> curious to see if it ever even gets to the point of having other
>>> competing implementations.
>> It's probably referring to the typedef issue.
>> In the absence of typedefs, type names consist of keywords and
>> punctuation. A typedef (a feature that was added to the language
>> after the syntax had been established) creates a type name that's an
>> identifier. It's impossible to parse something that uses a typedef name
>> without knowing that it's a typedef name. In effect a typedef adds a
>> context-sensitive keyword to the grammar. The parser needs to query the
>> symbol table.
>> But it's a solved problem and not that big a deal.
>
> Or, at least, you can't do it "properly" without knowing the typedefs.

I don't know what distinction you're making. I said that C cannot be
parsed without recognizing typedefs.

> But, heuristics exist, say we assume that:
> identifier identifier;
> identifier '*' identifier;
> ...
>
> Are not valid in statement context, then one can assume by extension,
> that encountering one of these patterns means to interpret the first
> identifier as a type name.

The latter assumption is invalid. For example:

int main(void) {
int x=0, y=0;
x * y;
{
typedef int x;
x * y;
}
}

The two lines "x * y;" are textually identical. The first is an
expression statement containing a multiplicative expression. The second
defines an object y of type int*. A parser cannot distinguish between
these two interpretations without knowing that x has been declared as a
typedef in the inner scope. (This applies equally in C90, which did not
allow mixing declarations and statements.)

A C parser that makes "assumptions" without already knowing which
identifiers are defined as typedefs in the current scope is not a valid
C parser. It's annoying, but as I said, it's a solved problem -- and
it's only a problem if you're writing a C parser.

And I've never heard of a C compiler that doesn't get this right.

> In some cases, one can make an assumption regarding any preceding
> keywords, and whether these keywords already define a type valid (as
> to whether to parse an identifier as a typename or part of the
> declarator), in combination with assuming the original cases to still
> be invalid (if we see this, the identifier is parsed as a typename).
>
> ...
>
> This will parse most code OK, but if one tries to use this as a
> general strategy, it may trip up occasionally.
>
> One major problem case is casts:
> x=(foo)(1, 2);
> If this is meant to be a function call, it may be parsed incorrectly
> if 'foo' is assumed to be a type. This situation does pop up
> occasionally in the wild.

Again, no assumption is necessary or sufficient. The parser has to know
whether "foo" is a type name or not.

> ...
>
>
>
> But, yeah, if one has a preprocessor, handles typedefs during parsing,
> ... then parsing C correctly isn't all that difficult.

This has nothing to do with the C preprocessor.

> There may be other edge cases, as I recently encountered code that did
> something like:
> enum vals1 {
> vals1a, vals1b, vals1c, ...
> };
> enum vals2 {
> vals2a, vals2b=vals1c, ...
> };
>
> Which required adding a new table in this case to sort out enum parsing.

The expression on the RHS of "vals2b=..." can be any integer constant
expression. The fact that it happens to be an enumeration constant is
irrelevant, and is not a problem for parsing.

> If designing a new language, would prefer to avoid a dependence on
> prior context during parsing, but this is its own thing.

Agreed. If the idea that an identifier can be a type name had been
introduced to the language earlier, the syntax could have been designed
to avoid the typedef problem.

--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
Working, but not speaking, for Philips
void Void(void) { Void(); } /* The recursive call of the void */

Re: C isn't a programming language

<t1iues$q0o$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20976&group=comp.lang.c#20976

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: bc...@freeuk.com (Bart)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Thu, 24 Mar 2022 23:22:04 +0000
Organization: A noiseless patient Spider
Lines: 50
Message-ID: <t1iues$q0o$1@dont-email.me>
References: <t1i34t$m94$1@dont-email.me> <875yo3f9ek.fsf@bsb.me.uk>
<t1iq1k$nip$1@dont-email.me> <t1is8q$mkp$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 24 Mar 2022 23:22:04 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="540970c282f16d13e2b8533c21588e98";
logging-data="26648"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+Pyq+6fxuEusiqTwP6TkWUDtDX5k8H010="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.7.0
Cancel-Lock: sha1:6tEFMEkJZhdGxdR/L1rB514tinQ=
In-Reply-To: <t1is8q$mkp$1@gioia.aioe.org>
 by: Bart - Thu, 24 Mar 2022 23:22 UTC

On 24/03/2022 22:41, Jack Noddy wrote:
> On 24/03/2022 22:06, Bart wrote:
>>
>> Anything controversial always seems like clickbait to you!
>
> You need to look at the background of people writing these articles. The
> link you posted says this:
>
> "I'm known for my work on Rust, Swift, and Homestuck."
> <https://gankra.github.io/blah/>
>
> That guy can never be objective about any other programming languages.
> Probably he has given up learning new things about other programming
> languages.
>
> However, C does need to add libraries to make it do something else
> without the users having to spend time writing their own or buying
> bespoke services from others. C was created to enhance the Unix
> operating System but it didn't go further than that. What now needs to
> be done is to have libraries for databases, files, GUI etc like C# has done.
>
> People should use whatever is quicker to get results. There is no point
> in bashing about one particular programming language. Things have moved
> on and more and more apps are run through a web browser!!. You can use
> Word or Excel in any browser these days. C has failed to keep up with
> this trend. How many people are still spending time enhancing an
> operating system? People are writing Apps that can do something.
>

I take it that you also run your C compiler via a web app!

People are still writing programs at a lower level that make use, on
Windows, of external libraries supplied as DLL shared libraries. (There
are 50,000 DLL files on my Windows machine.)

Those DLLs invariably have C-like APIs, except where they use C++, and
they invariably contain functions called via the platform ABI, which is
full of lower-level data types just as are used in C.

It's the chaotic way that C expresses those types in APIs that is one of
the complaints.

So the beef in this short article is not so much in having such
low-level interfaces at all, but the less-than-ideal way in which C has
become the lingua franca for expressing them.

The answer isn't to simply do away with vast libraries like GTK, or
finding another way to talk to the Windows OS, and just use a
batteries-included scripting language.

Re: C isn't a programming language

<t1j6tp$d9r$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20977&group=comp.lang.c#20977

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: cr88...@gmail.com (BGB)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Thu, 24 Mar 2022 20:46:31 -0500
Organization: A noiseless patient Spider
Lines: 209
Message-ID: <t1j6tp$d9r$1@dont-email.me>
References: <t1i34t$m94$1@dont-email.me> <7m0%J.469671$oF2.277206@fx10.iad>
<t1ibau$mtp$1@gioia.aioe.org> <87zglfyz85.fsf@nosuchdomain.example.com>
<t1ioln$cls$1@dont-email.me> <87bkxvymhe.fsf@nosuchdomain.example.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 25 Mar 2022 01:46:34 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="f2432f73bfac495c94b9e46d8a5e15e8";
logging-data="13627"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/ZTIMCRhb6t4eP2XX9fj8m"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.6.1
Cancel-Lock: sha1:T+LvYXvPvkPADeacJvndekSJ6jg=
In-Reply-To: <87bkxvymhe.fsf@nosuchdomain.example.com>
Content-Language: en-US
 by: BGB - Fri, 25 Mar 2022 01:46 UTC

On 3/24/2022 6:11 PM, Keith Thompson wrote:
> BGB <cr88192@gmail.com> writes:
>> On 3/24/2022 1:36 PM, Keith Thompson wrote:
>>> Guillaume <message@bottle.org> writes:
>>>> Le 24/03/2022 à 16:45, Scott Lurndal a écrit :
>>>>> Richard Harnden <richard.nospam@gmail.com> writes:
>>>>>> "C: Everyone's favourite programming language isn't a programming language"
>>>>>>
>>>>>> Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>
>>>>> The article doesn't make a whole lot of sense - it's basically just
>>>>> bitching because swift and rust can't do everything that C can.
>>>>
>>>> And you're putting it lightly.
>>>> Of course, first thing, without even reading it, is questioning the
>>>> relevance of such articles written by heavy proponents of
>>>> "alternative" languages. How much more biased can one be?
>>>>
>>>> Digging a bit deeper, there is nothing much to even take from this
>>>> short article. It's pretty shallow.
>>>>
>>>> - C is difficult to parse? C declarations are, for instance, not
>>>> exactly easy, but it's only very moderately difficult. You can have
>>>> fun with this to get an idea: https://cdecl.org/ . I has never made
>>>> it a problem to write a C compiler. There are more of them out there
>>>> than for any other language, I think. OTOH, there is, AFAIK, only one
>>>> implementation of Rust. Which to me is in itself a problem. I'm
>>>> curious to see if it ever even gets to the point of having other
>>>> competing implementations.
>>> It's probably referring to the typedef issue.
>>> In the absence of typedefs, type names consist of keywords and
>>> punctuation. A typedef (a feature that was added to the language
>>> after the syntax had been established) creates a type name that's an
>>> identifier. It's impossible to parse something that uses a typedef name
>>> without knowing that it's a typedef name. In effect a typedef adds a
>>> context-sensitive keyword to the grammar. The parser needs to query the
>>> symbol table.
>>> But it's a solved problem and not that big a deal.
>>
>> Or, at least, you can't do it "properly" without knowing the typedefs.
>
> I don't know what distinction you're making. I said that C cannot be
> parsed without recognizing typedefs.
>

Note I said "properly", one can do it, sorta, but may get incorrect
results. For the most part, these results *may* be sufficient for some
tasks which are a little looser in terms of their requirements.

In this case, one can ignore the existence of cases where the parser
will fall on its face (they will still exist, but we can pretend they
don't exist...).

>> But, heuristics exist, say we assume that:
>> identifier identifier;
>> identifier '*' identifier;
>> ...
>>
>> Are not valid in statement context, then one can assume by extension,
>> that encountering one of these patterns means to interpret the first
>> identifier as a type name.
>
> The latter assumption is invalid. For example:
>
> int main(void) {
> int x=0, y=0;
> x * y;
> {
> typedef int x;
> x * y;
> }
> }
>
> The two lines "x * y;" are textually identical. The first is an
> expression statement containing a multiplicative expression. The second
> defines an object y of type int*. A parser cannot distinguish between
> these two interpretations without knowing that x has been declared as a
> typedef in the inner scope. (This applies equally in C90, which did not
> allow mixing declarations and statements.)
>
> A C parser that makes "assumptions" without already knowing which
> identifiers are defined as typedefs in the current scope is not a valid
> C parser. It's annoying, but as I said, it's a solved problem -- and
> it's only a problem if you're writing a C parser.
>
> And I've never heard of a C compiler that doesn't get this right.
>

Granted.

But, the context in this case was for parsing for things like FFI tools,
rather than necessarily for a C compiler. Namely, if you want to parse
headers without needing to do so via an actual C compiler.

For a C compiler, trying to do it this way will result in incorrectly
parsing things on occasion. I was not trying to claim that it wouldn't;
rather you would have a variant that would not allow for things like
having a multiplication expression where a statement was expected.

And, OTOH, for something like "mine program for prototypes to put into a
header" or similar, one can get "even more tacky" (eg, using textual
pattern matching to grab anything that looks like a function
declaration, *).

*: And then using annotation comments to tell the tool when to ignore
any "false positives".

>> In some cases, one can make an assumption regarding any preceding
>> keywords, and whether these keywords already define a type valid (as
>> to whether to parse an identifier as a typename or part of the
>> declarator), in combination with assuming the original cases to still
>> be invalid (if we see this, the identifier is parsed as a typename).
>>
>> ...
>>
>> This will parse most code OK, but if one tries to use this as a
>> general strategy, it may trip up occasionally.
>>
>> One major problem case is casts:
>> x=(foo)(1, 2);
>> If this is meant to be a function call, it may be parsed incorrectly
>> if 'foo' is assumed to be a type. This situation does pop up
>> occasionally in the wild.
>
> Again, no assumption is necessary or sufficient. The parser has to know
> whether "foo" is a type name or not.
>

To be "correct".

Requirements are looser if:
It doesn't need to always parse correctly;
It doesn't need to deal with "general purpose" code;
...

So, it is not valid for a general purpose compiler, but may be
sufficient for FFI tools or similar.

It may still need to at least attempt to parse function bodies though,
because these are semi-common inside headers.

Granted, one can argue as well that maintaining a table of previously
seen typedefs isn't all that difficult, and is required for correct parsing.

One could potentially have a language which has the "look and feel" of
C, but uses a different parsing strategy, and leave it as the
programmers' issue if they write something and it doesn't work as expected.

>> ...
>>
>>
>>
>> But, yeah, if one has a preprocessor, handles typedefs during parsing,
>> ... then parsing C correctly isn't all that difficult.
>
> This has nothing to do with the C preprocessor.
>

One still needs a preprocessor for "#include" and "#ifdef" and similar,
to be able to make much useful sense of the contents of most C headers
for FFI tools.

>> There may be other edge cases, as I recently encountered code that did
>> something like:
>> enum vals1 {
>> vals1a, vals1b, vals1c, ...
>> };
>> enum vals2 {
>> vals2a, vals2b=vals1c, ...
>> };
>>
>> Which required adding a new table in this case to sort out enum parsing.
>
> The expression on the RHS of "vals2b=..." can be any integer constant
> expression. The fact that it happens to be an enumeration constant is
> irrelevant, and is not a problem for parsing.
>

It depends some on when and where the values are assigned in the "enum".
In this case, the enums were handled fairly early in the process, so
ended up needing another table mostly to deal with values for things
like "enum" and "const int x=whatever;" and similar, so that these
values could be propagated at a fairly early stage (namely during
parse-time constant-folding operations).

Things like dealing with global variables and functions would not happen
until a following stage.

>> If designing a new language, would prefer to avoid a dependence on
>> prior context during parsing, but this is its own thing.
>
> Agreed. If the idea that an identifier can be a type name had been
> introduced to the language earlier, the syntax could have been designed
> to avoid the typedef problem.
>

Yeah.

Languages like C# seem to be built around a strategy more like I had
mentioned earlier.


Click here to read the complete article
Re: C isn't a programming language

<t1jfpp$aal$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20978&group=comp.lang.c#20978

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!aioe.org!NWBQctYDi7NlCOQPK8oY6A.user.46.165.242.75.POSTED!not-for-mail
From: mess...@bottle.org (Guillaume)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Fri, 25 Mar 2022 05:17:58 +0100
Organization: Aioe.org NNTP Server
Message-ID: <t1jfpp$aal$1@gioia.aioe.org>
References: <t1i34t$m94$1@dont-email.me> <7m0%J.469671$oF2.277206@fx10.iad>
<t1ibau$mtp$1@gioia.aioe.org> <87zglfyz85.fsf@nosuchdomain.example.com>
<t1ioln$cls$1@dont-email.me> <87bkxvymhe.fsf@nosuchdomain.example.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="10581"; posting-host="NWBQctYDi7NlCOQPK8oY6A.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.7.0
Content-Language: fr
X-Notice: Filtered by postfilter v. 0.9.2
 by: Guillaume - Fri, 25 Mar 2022 04:17 UTC

Le 25/03/2022 à 00:11, Keith Thompson a écrit :
> The latter assumption is invalid. For example:
>
> int main(void) {
> int x=0, y=0;
> x * y;
> {
> typedef int x;
> x * y;
> }
> }
>
> The two lines "x * y;" are textually identical. The first is an
> expression statement containing a multiplicative expression. The second
> defines an object y of type int*. A parser cannot distinguish between
> these two interpretations without knowing that x has been declared as a
> typedef in the inner scope. (This applies equally in C90, which did not
> allow mixing declarations and statements.)

Yep. All it requires is to look up in a symbol table though. Not a huge
deal. The potential deal is that it's a bit slower to parse, then. (But
languages that do not need to do this will just postpone it until later.)

For any "modern" language, that is usually much more complex than C,
having to look up type definitions in a table is frankly a completely
minor point.

The more important point is whatever is more readable. And I'll have to
admit that the "wirthian" (Pascal-like) approach is more readable.

As the site I linked to shows, you can write pretty convoluted C
declarations that are basically impossible to figure out in a reasonable
time by a human. Doesn't mean you have to do it, though.

Re: C isn't a programming language

<t1kr7t$ai8$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20979&group=comp.lang.c#20979

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: arequip...@gmail.com (Ian Pilcher)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Fri, 25 Mar 2022 11:39:24 -0500
Organization: A noiseless patient Spider
Lines: 11
Message-ID: <t1kr7t$ai8$1@dont-email.me>
References: <t1i34t$m94$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 25 Mar 2022 16:39:25 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="b575d76a18cd7a85328287cddd008798";
logging-data="10824"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1//B8DF1aKUOIO1eTca6Wc+tK8QS1Ws/rM="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.7.0
Cancel-Lock: sha1:HU52u2C8mjvdT2crjhkgsRV2ixk=
In-Reply-To: <t1i34t$m94$1@dont-email.me>
Content-Language: en-US
 by: Ian Pilcher - Fri, 25 Mar 2022 16:39 UTC

On 3/24/22 10:35, Richard Harnden wrote:
> "C: Everyone's favourite programming language isn't a programming language"
>
> Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>

Incoherent drivel.

--
========================================================================
Google Where SkyNet meets Idiocracy
========================================================================

Re: C isn't a programming language

<t1l10h$1ts6$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20981&group=comp.lang.c#20981

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!aioe.org!Puiiztk9lHEEQC0y3uUjRA.user.46.165.242.75.POSTED!not-for-mail
From: non...@add.invalid (Manfred)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Fri, 25 Mar 2022 19:17:52 +0100
Organization: Aioe.org NNTP Server
Message-ID: <t1l10h$1ts6$1@gioia.aioe.org>
References: <t1i34t$m94$1@dont-email.me> <7m0%J.469671$oF2.277206@fx10.iad>
<t1ibau$mtp$1@gioia.aioe.org> <t1is1k$74g$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="63366"; posting-host="Puiiztk9lHEEQC0y3uUjRA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.7.0
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-US
 by: Manfred - Fri, 25 Mar 2022 18:17 UTC

On 3/24/2022 11:40 PM, Bart wrote:
> On 24/03/2022 17:55, Guillaume wrote:
>> Le 24/03/2022 à 16:45, Scott Lurndal a écrit :
>>> Richard Harnden <richard.nospam@gmail.com> writes:
>>>> "C: Everyone's favourite programming language isn't a programming
>>>> language"
>>>>
>>>> Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>
>>>
>>> The article doesn't make a whole lot of sense - it's basically just
>>> bitching because swift and rust can't do everything that C can.
>>
>> And you're putting it lightly.
>> Of course, first thing, without even reading it, is questioning the
>> relevance of such articles written by heavy proponents of
>> "alternative" languages. How much more biased can one be?
>>
>> Digging a bit deeper, there is nothing much to even take from this
>> short article. It's pretty shallow.
>>
>> - C is difficult to parse?
>
> This might be within a context where C syntax is used to define an API
> (eg. header files), then processing such files either manually or using
> a tool can give rise to the issues mentioned.
>
> You can't write a simple tool, you need to incorporate half of a C
> compiler.
>
>  C declarations are, for instance, not exactly
>> easy, but it's only very moderately difficult. You can have fun with
>> this to get an idea: https://cdecl.org/ .
>
> The fact that such a tool even needs to exist isn't a giant red flag to
> you?
>
> The whole point of having textual syntax in a program language is to
> make it easier for humans! Needing a separate program to make sense of
> it ... makes no sense.
>

I see your point, but...

Considering that the C syntax was designed in the '70s, it might be
possible that it could have been made better, but look at what other
languages have been doing "better"

First, look at C's flexibility with pointers, which is one of the strong
suits of C (in fact, it's a must have, something that makes C really
good for some kind of programming):
C allows you to declare a pointer to pointer to pointer to function
returning a pointer to function returning a pointer to int.

Now, good luck doing that with Java.

More in general, it is about indirection. If a language's declaration
syntax allows for any combination of indirection constructs, then things
may get convoluted, but it's the type itself that is convoluted, not
necessarily the syntax's fault.

And, obviously, typedefs make things a /lot/ easier.

Re: C isn't a programming language

<t1l14j$7nt$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20982&group=comp.lang.c#20982

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: Bonita.M...@gmail.com (Bonita Montero)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Fri, 25 Mar 2022 19:20:03 +0100
Organization: A noiseless patient Spider
Lines: 9
Message-ID: <t1l14j$7nt$1@dont-email.me>
References: <t1i34t$m94$1@dont-email.me> <7m0%J.469671$oF2.277206@fx10.iad>
<t1ibau$mtp$1@gioia.aioe.org> <t1is1k$74g$1@dont-email.me>
<t1l10h$1ts6$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 25 Mar 2022 18:20:03 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="ab32e4cd76b8c957f9635b8b9484c274";
logging-data="7933"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+5HfFV3iGBMtmgjHlw8AJVD6XMWbhwuK8="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.7.0
Cancel-Lock: sha1:AKcHV4f4CSjeEx/WUgccFy3W7bM=
In-Reply-To: <t1l10h$1ts6$1@gioia.aioe.org>
Content-Language: de-DE
 by: Bonita Montero - Fri, 25 Mar 2022 18:20 UTC

> First, look at C's flexibility with pointers, which is one of the strong
> suits of C (in fact, it's a must have, something that makes C really
> good for some kind of programming):
> C allows you to declare a pointer to pointer to pointer to function
> returning a pointer to function returning a pointer to int.

And that's sufficient for you for assessing a language as powerful ???
C is for sure not a powerful language but is very rudiemental.

Re: C isn't a programming language

<t1l4f7$4tb$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20983&group=comp.lang.c#20983

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: bc...@freeuk.com (Bart)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Fri, 25 Mar 2022 19:16:56 +0000
Organization: A noiseless patient Spider
Lines: 121
Message-ID: <t1l4f7$4tb$1@dont-email.me>
References: <t1i34t$m94$1@dont-email.me> <7m0%J.469671$oF2.277206@fx10.iad>
<t1ibau$mtp$1@gioia.aioe.org> <t1is1k$74g$1@dont-email.me>
<t1l10h$1ts6$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 25 Mar 2022 19:16:55 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="540970c282f16d13e2b8533c21588e98";
logging-data="5035"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/RfIU4QypP+E1NBnuvUMa4fmNO6sbXJ/s="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.7.0
Cancel-Lock: sha1:svvW2U7hCWt67AJ7FC04o+vP0B8=
In-Reply-To: <t1l10h$1ts6$1@gioia.aioe.org>
 by: Bart - Fri, 25 Mar 2022 19:16 UTC

On 25/03/2022 18:17, Manfred wrote:
> On 3/24/2022 11:40 PM, Bart wrote:
>> On 24/03/2022 17:55, Guillaume wrote:
>>> Le 24/03/2022 à 16:45, Scott Lurndal a écrit :
>>>> Richard Harnden <richard.nospam@gmail.com> writes:
>>>>> "C: Everyone's favourite programming language isn't a programming
>>>>> language"
>>>>>
>>>>> Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>
>>>>
>>>> The article doesn't make a whole lot of sense - it's basically just
>>>> bitching because swift and rust can't do everything that C can.
>>>
>>> And you're putting it lightly.
>>> Of course, first thing, without even reading it, is questioning the
>>> relevance of such articles written by heavy proponents of
>>> "alternative" languages. How much more biased can one be?
>>>
>>> Digging a bit deeper, there is nothing much to even take from this
>>> short article. It's pretty shallow.
>>>
>>> - C is difficult to parse?
>>
>> This might be within a context where C syntax is used to define an API
>> (eg. header files), then processing such files either manually or
>> using a tool can give rise to the issues mentioned.
>>
>> You can't write a simple tool, you need to incorporate half of a C
>> compiler.
>>
>>   C declarations are, for instance, not exactly
>>> easy, but it's only very moderately difficult. You can have fun with
>>> this to get an idea: https://cdecl.org/ .
>>
>> The fact that such a tool even needs to exist isn't a giant red flag
>> to you?
>>
>> The whole point of having textual syntax in a program language is to
>> make it easier for humans! Needing a separate program to make sense of
>> it ... makes no sense.
>>
>
> I see your point, but...
>
> Considering that the C syntax was designed in the '70s, it might be
> possible that it could have been made better, but look at what other
> languages have been doing "better"
>
> First, look at C's flexibility with pointers, which is one of the strong
> suits of C (in fact, it's a must have, something that makes C really
> good for some kind of programming):
> C allows you to declare a pointer to pointer to pointer to function
> returning a pointer to function returning a pointer to int.
>
> Now, good luck doing that with Java.

I don't know Java or its limitations. But Algol68 for example came out
before C, and it allowed arbitrarily complex type chains like your
example, yet it used left-to-right syntax, with any name at one end,
rather than in the middle.

My languages do the same, and actually one of them can express your
example like this, almost identical to your English version:

pointer to pointer to pointer to function returning pointer to
function returning pointer to int p

This was a bit of fun where 'pointer' was a synonym for 'ref', 'to' is
ignored, and 'returning' means '=>' as it would generally written like this:

ref ref ref function => ref function => ref int q

As for C, I believe the equivalent is:

int *(*(***q)(void))(void);

If I wanted to declare p, q, r of the same type, then while /I/ can write:

ref ref ref function => ref function => ref int p, q, r

In C it would need to be:

int *(*(***p)(void))(void), *(*(***q)(void))(void),
*(*(***r)(void))(void);

I would need this to avoid repetition:

typedef *(*(***dummyT)(void))(void),
dummyT p, q, r

So you need to invent some name that describes this particular function
signature compared with all others (notice it is still in the middle!).

It's a joke.

>
> More in general, it is about indirection. If a language's declaration
> syntax allows for any combination of indirection constructs, then things
> may get convoluted, but it's the type itself that is convoluted, not
> necessarily the syntax's fault.
>
> And, obviously, typedefs make things a /lot/ easier.

Typedefs should be used when they make sense for the project. If used to
just to mitigate the awfulness of the type syntax, then something is wrong.

You don't want to do so just to ensure you are declaring the correct
type here:

int *A[10];
int (*B)[10];

(Since, in C, you will not get an error if you would normally type *A[i]
and (*B)[i], but accidentally do (*A)[i] and *B[i].)

Now go and look at some parameter declarations (such as in APIs), where:

int A[10]; // In a parameter list
int A[10]; // anywhere else

declare quite different types.

Re: C isn't a programming language

<t1l53j$8i8$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20984&group=comp.lang.c#20984

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: rek...@hispagatos.org.invalid (rek2 hispagatos)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Fri, 25 Mar 2022 19:27:47 -0000 (UTC)
Organization: Hispagatos
Lines: 13
Message-ID: <t1l53j$8i8$1@dont-email.me>
References: <t1i34t$m94$1@dont-email.me>
Reply-To: ReK2 <rek2@hispagatos.org>
Injection-Date: Fri, 25 Mar 2022 19:27:47 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="a74338bc66e2a6c4a65dd39607e7fe68";
logging-data="8776"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+XGfxLYYQtTqkETVjARTxv"
User-Agent: slrn/pre1.0.4-6 (Linux)
Cancel-Lock: sha1:XoLlYV+/j7fbWF+sOzNydYLzz9s=
 by: rek2 hispagatos - Fri, 25 Mar 2022 19:27 UTC

LOL, this is all FUD people is been attacking C since I was born

On 2022-03-24, Richard Harnden <richard.nospam@gmail.com> wrote:
> "C: Everyone's favourite programming language isn't a programming language"
>
> Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>

--
https://hispagatos.org
Gemini://rek2.hispagatos.org
https://hispagatos.space/@rek2
https://portal.mozz.us/gemini/rek2.hispagatos.org/

Re: C isn't a programming language

<t1l551$8i8$2@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20985&group=comp.lang.c#20985

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: rek...@hispagatos.org.invalid (rek2 hispagatos)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Fri, 25 Mar 2022 19:28:33 -0000 (UTC)
Organization: Hispagatos
Lines: 19
Message-ID: <t1l551$8i8$2@dont-email.me>
References: <t1i34t$m94$1@dont-email.me> <7m0%J.469671$oF2.277206@fx10.iad>
Reply-To: ReK2 <rek2@hispagatos.org>
Injection-Date: Fri, 25 Mar 2022 19:28:33 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="a74338bc66e2a6c4a65dd39607e7fe68";
logging-data="8776"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/M0kMVvFMByUNBVqqdr4ip"
User-Agent: slrn/pre1.0.4-6 (Linux)
Cancel-Lock: sha1:1A3dOt+sxYiEtFBiCEmEn95hAK4=
 by: rek2 hispagatos - Fri, 25 Mar 2022 19:28 UTC

Exactly
claps

Happy Hacking
On 2022-03-24, Scott Lurndal <scott@slp53.sl.home> wrote:
> Richard Harnden <richard.nospam@gmail.com> writes:
>>"C: Everyone's favourite programming language isn't a programming language"
>>
>>Erm ... <https://www.theregister.com/2022/03/23/c_not_a_language>
>
> The article doesn't make a whole lot of sense - it's basically just
> bitching because swift and rust can't do everything that C can.

--
https://hispagatos.org
Gemini://rek2.hispagatos.org
https://hispagatos.space/@rek2
https://portal.mozz.us/gemini/rek2.hispagatos.org/

Re: C isn't a programming language

<3e4c00c3-6aaf-42a6-a269-525c1e9f27e0n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20986&group=comp.lang.c#20986

  copy link   Newsgroups: comp.lang.c
X-Received: by 2002:a05:6214:21ee:b0:441:4934:3c91 with SMTP id p14-20020a05621421ee00b0044149343c91mr10645336qvj.113.1648239545907;
Fri, 25 Mar 2022 13:19:05 -0700 (PDT)
X-Received: by 2002:ac8:5c10:0:b0:2e1:dbee:9ee6 with SMTP id
i16-20020ac85c10000000b002e1dbee9ee6mr11070903qti.25.1648239545755; Fri, 25
Mar 2022 13:19:05 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.c
Date: Fri, 25 Mar 2022 13:19:05 -0700 (PDT)
In-Reply-To: <t1l14j$7nt$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2a00:23a8:400a:5601:75eb:69da:55ee:cee1;
posting-account=Dz2zqgkAAADlK5MFu78bw3ab-BRFV4Qn
NNTP-Posting-Host: 2a00:23a8:400a:5601:75eb:69da:55ee:cee1
References: <t1i34t$m94$1@dont-email.me> <7m0%J.469671$oF2.277206@fx10.iad>
<t1ibau$mtp$1@gioia.aioe.org> <t1is1k$74g$1@dont-email.me>
<t1l10h$1ts6$1@gioia.aioe.org> <t1l14j$7nt$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3e4c00c3-6aaf-42a6-a269-525c1e9f27e0n@googlegroups.com>
Subject: Re: C isn't a programming language
From: malcolm....@gmail.com (Malcolm McLean)
Injection-Date: Fri, 25 Mar 2022 20:19:05 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 9
 by: Malcolm McLean - Fri, 25 Mar 2022 20:19 UTC

On Friday, 25 March 2022 at 18:20:16 UTC, Bonita Montero wrote:
> > First, look at C's flexibility with pointers, which is one of the strong
> > suits of C (in fact, it's a must have, something that makes C really
> > good for some kind of programming):
> > C allows you to declare a pointer to pointer to pointer to function
> > returning a pointer to function returning a pointer to int.
> And that's sufficient for you for assessing a language as powerful ???
> C is for sure not a powerful language but is very rudiemental.
>
Indirection is one of the most powerful concepts in programming.

Re: C isn't a programming language

<877d8h7nhv.fsf@bsb.me.uk>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20987&group=comp.lang.c#20987

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ben.use...@bsb.me.uk (Ben Bacarisse)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Fri, 25 Mar 2022 21:04:12 +0000
Organization: A noiseless patient Spider
Lines: 17
Message-ID: <877d8h7nhv.fsf@bsb.me.uk>
References: <t1i34t$m94$1@dont-email.me> <7m0%J.469671$oF2.277206@fx10.iad>
<t1ibau$mtp$1@gioia.aioe.org> <t1is1k$74g$1@dont-email.me>
<t1l10h$1ts6$1@gioia.aioe.org> <t1l14j$7nt$1@dont-email.me>
<3e4c00c3-6aaf-42a6-a269-525c1e9f27e0n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="3764156ced1518774c33a15cd121a188";
logging-data="24504"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/43PZHPQqm67WIRx8D3lBKzSOf6ULtlso="
Cancel-Lock: sha1:eKY78WZDvM0JjgVhPRgbp23Vbzk=
sha1:GB/bopouwMoufJtkoctsV7m85nQ=
X-BSB-Auth: 1.bb777f860eba2a7fe19f.20220325210412GMT.877d8h7nhv.fsf@bsb.me.uk
 by: Ben Bacarisse - Fri, 25 Mar 2022 21:04 UTC

Malcolm McLean <malcolm.arthur.mclean@gmail.com> writes:

> On Friday, 25 March 2022 at 18:20:16 UTC, Bonita Montero wrote:
>> > First, look at C's flexibility with pointers, which is one of the strong
>> > suits of C (in fact, it's a must have, something that makes C really
>> > good for some kind of programming):
>> > C allows you to declare a pointer to pointer to pointer to function
>> > returning a pointer to function returning a pointer to int.
>> And that's sufficient for you for assessing a language as powerful ???
>> C is for sure not a powerful language but is very rudiemental.
>>
> Indirection is one of the most powerful concepts in programming.

What he said ;-)

--
Ben.

Re: C isn't a programming language

<t1lc81$18l5$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=20988&group=comp.lang.c#20988

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!aioe.org!NWBQctYDi7NlCOQPK8oY6A.user.46.165.242.75.POSTED!not-for-mail
From: mess...@bottle.org (Guillaume)
Newsgroups: comp.lang.c
Subject: Re: C isn't a programming language
Date: Fri, 25 Mar 2022 22:29:32 +0100
Organization: Aioe.org NNTP Server
Message-ID: <t1lc81$18l5$1@gioia.aioe.org>
References: <t1i34t$m94$1@dont-email.me> <875yo3f9ek.fsf@bsb.me.uk>
<t1iq1k$nip$1@dont-email.me> <87o81vdk1f.fsf@bsb.me.uk>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="41637"; posting-host="NWBQctYDi7NlCOQPK8oY6A.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.7.0
Content-Language: fr
X-Notice: Filtered by postfilter v. 0.9.2
 by: Guillaume - Fri, 25 Mar 2022 21:29 UTC

Le 25/03/2022 à 00:10, Ben Bacarisse a écrit :
>> Here's another recent article on the subject written more
>> passionately, which I suggest you don't click on either:
>>
>> https://gankra.github.io/blah/c-isnt-a-language/
>
> Thanks for the advice -- I have followed it to the letter.

You were well inspired. I had a look and it's even worse than the other
article. It just looks like a kiddo throwing a tantrum while desperately
trying to sound smart.

Pages:123
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor