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: Top 10 most common hard skills listed on resumes... Date: Thu, 29 Aug 2024 15:58:52 -0000 (UTC) Organization: A noiseless patient Spider Lines: 60 Message-ID: <20240829084851.962@kylheku.com> References: <vab101$3er$1@reader1.panix.com> <vad7ns$1g27b$1@raubtier-asyl.eternal-september.org> <vad8lr$1fv5u$1@dont-email.me> <vaf7f0$k51$2@reader1.panix.com> <vafgb2$1to4v$2@dont-email.me> <92ab79736a70ea1563691d22a9b396a20629d8cf@i2pn2.org> <vafim7$1ubg8$1@dont-email.me> <vah4hr$2b9i8$5@dont-email.me> <vahngt$2dtm9$1@dont-email.me> <87r0abzcsj.fsf@bsb.me.uk> <vai1ec$2fns2$1@dont-email.me> <874j75zftu.fsf@bsb.me.uk> <valrj7$367a8$2@dont-email.me> <87mskwy9t1.fsf@bsb.me.uk> <vanq4h$3iieb$1@dont-email.me> <875xrkxlgo.fsf@bsb.me.uk> <vapitn$3u1ub$1@dont-email.me> <87o75bwlp8.fsf@bsb.me.uk> <vaps06$3vg8l$1@dont-email.me> <871q27weeh.fsf@bsb.me.uk> <20240829083200.195@kylheku.com> <87v7zjuyd8.fsf@bsb.me.uk> Injection-Date: Thu, 29 Aug 2024 17:58:53 +0200 (CEST) Injection-Info: dont-email.me; posting-host="ee676becc5cc43d653dc7d1580a96201"; logging-data="37359"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19blaj3mB5L2jlVjCS2vpao6P1edB2eECk=" User-Agent: slrn/pre1.0.4-9 (Linux) Cancel-Lock: sha1:eaHz9HQPV+ub9cTazohS9f46N90= Bytes: 4054 On 2024-08-29, Ben Bacarisse <ben@bsb.me.uk> wrote: > Kaz Kylheku <643-408-1753@kylheku.com> writes: > >> On 2024-08-29, Ben Bacarisse <ben@bsb.me.uk> wrote: >>> Bart <bc@freeuk.com> writes: >>> >>>> On 29/08/2024 13:35, Ben Bacarisse wrote: >>>>> Bart <bc@freeuk.com> writes: >>>> >>>>>> I explained that. LHS and RHS can be identical terms for assignment in >>>>>> pretty much every aspect, but there are extra constraints on the LHS. >>>>> So you use "exactly the same" to mean "exactly the same except for the >>>>> differences". >>>> >>>> No, I do mean exactly the same, both in terms of syntax and (in my >>>> implementations, which are likely typical) internal representation of those >>>> terms. >>>> >>>> There are no differences other than where the type system says your code is >>>> invalid. So are no differences when considering only valid programs. >>>> >>>> This program in my language: >>>> >>>> 42 := 42 >>>> >>>> is valid syntax. >>> >>> So what? We were talking about assignment in C. You cut the two >>> previous quotes where it was clear we were talking about C. This is not >>> an honest thing to do. You are arguing for the sake if it, and in a >>> dishonest way too. >> >> It's also valid syntax in C, with a constraint violation that can be >> "caught later on" in an implementation of C, just like in Bart's >> language. > > Have you taken Bart's bait and are now discussing a narrower context? > > The claim that C's assignment is symmetric and what is required on the > two sides is exactly the same is junk. C's assignment has different > syntax on each side, and what is required is even more strict. In the ISO C grammar for assignment, there is a "unary expression" on the left and an "assignment expression" on the right. That's just a particular factoring of the grammar that implementors don't have to follow, if the correct results are produced. Under a parser generator tool we could have a production rule like expr '=' expr , where the '=' token has an elsewhere-declared associativity and precedence. The basic idea that the same syntactic kind of thing is on both sides of a C assignment (with an additional lvalue constraint) is valid; it's just not literally true if we are discussing the details of how ISO C expresses the grammar. -- TXR Programming Language: http://nongnu.org/txr Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal Mastodon: @Kazinator@mstdn.ca