Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Bart Newsgroups: comp.lang.c Subject: Re: Top 10 most common hard skills listed on resumes... Date: Mon, 26 Aug 2024 14:54:21 +0100 Organization: A noiseless patient Spider Lines: 40 Message-ID: References: <92ab79736a70ea1563691d22a9b396a20629d8cf@i2pn2.org> <87r0abzcsj.fsf@bsb.me.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Mon, 26 Aug 2024 15:54:21 +0200 (CEST) Injection-Info: dont-email.me; posting-host="ebcc4e086173f1de784cfcef8522513a"; logging-data="2613122"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX196cX2iyiy6aIPrwwelsXVL" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:hyjbEAvxKyDSpxeW8QX2iRS3R2w= Content-Language: en-GB In-Reply-To: <87r0abzcsj.fsf@bsb.me.uk> Bytes: 2823 On 26/08/2024 13:30, Ben Bacarisse wrote: > Bart writes: > >> BLISS is a rather strange language. For something supposedly low level than >> C, it doesn't have 'goto'. >> >> It is also typeless. >> >> There is also a key feature that sets it apart from most HLLs: usually if >> you declare a variable A, then you can access A's value just by writing A; >> its address is automatically dereferenced. > > Not always. This is where left- and right-evaluation came in. On the > left of an assignment A denotes a "place" to receive a value. On the > right, it denotes a value obtained from a place. CPL used the terms and > C got them via BCPL's documentation. Viewed like this, BLISS just makes > "evaluation" a universal concept. > That doesn't explain why one language requires an explcition dereference in the source code, and the other doesn't. By "access A's value" I mean either read or write access. > A denotes a "place" to receive a value. On the > right, it denotes a value obtained from a place. This /is/ confusing as it suggests a different rank for A depending on whether it is an lvalue or rvalue, eg. some difference in level of indirection. In fact that is the same on both sides. My point was that HLLs typically read or write values of variables without extra syntax. Given a declaration like 'int A' then: BLISS C Read or write A's value .A A Get A's address A &A