Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <87seurdqts.fsf@nosuchdomain.example.com>
Deutsch   English   Français   Italiano  
<87seurdqts.fsf@nosuchdomain.example.com>

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

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Keith Thompson <Keith.S.Thompson+u@gmail.com>
Newsgroups: comp.lang.c
Subject: Re: Top 10 most common hard skills listed on resumes...
Date: Mon, 26 Aug 2024 12:30:55 -0700
Organization: None to speak of
Lines: 46
Message-ID: <87seurdqts.fsf@nosuchdomain.example.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>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Date: Mon, 26 Aug 2024 21:30:56 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="bc88295ca556238feaf2ba55fe5de0e2";
	logging-data="2722092"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/pbsT5JuapRPenh68iArfe"
User-Agent: Gnus/5.13 (Gnus v5.13)
Cancel-Lock: sha1:6PQF8dzRomD9+Zx99ts2bFNOapU=
	sha1:iMbfGEJm49SeXivO5WAyTZ6StsI=
Bytes: 3490

Ben Bacarisse <ben@bsb.me.uk> writes:
> Bart <bc@freeuk.com> 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.

As I recall, the terms "lvalue" and "rvalue" originated with CPL.  The
'l' and 'r' suggest the left and right sides of an assignment.

Disclaimer: I have a couple of CPL documents, and I don't see the terms
"lvalue" and "rvalue" in a quick look.  The PDFs are not searchable.  If
someone has better information, please post it.  Wikipedia does say that
the notion of "l-values" and "r-values" was introduced by CPL.

An expression could be "evaluated for its lvalue", which means
determining what object it designates, or "evaluted for its rvalue",
which C just calls evaluating the expression.  An expression like 2+2
that does not designate an object does not have an lvalue.

So given `int foo = 42;`, in CPL terms evaluating `foo` for its lvalue
yields the identity of that object, and evaluating `foo` for its rvalue
yields the value 42.

C changed the meanings, so that a C lvalue is a kind of expression, not
the result of evaluating an expression.  C doesn't use the term "rvalue"
except in one footnote: "What is sometimes called "rvalue" is in this
document described as the "value of an expression"."

C has implicit *lvalue conversion* which converts an lvalue (expression)
to the value stored in the designated object.  Apparently BLISS requires
this conversion to be done explicitly.  (I don't hate the idea.)

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */