Thread overview | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
January 04, 2011 terminology: "l-value" & "r-value" | ||||
---|---|---|---|---|
| ||||
Hello, I'm bluffed by the 2 terms "l-value" & "r-value" used in C-line language common terminologies. I think I guess what they mean, but I don't understand the need for such absconse idioms. Why not: l-value <-> variable r-value <-> value (or expression) ? I guess (*p) is considered an l-value. Indeed, it's a special way of denoting a variable, matching the special case of a pointer. If correct, this requires slightly extending the notion of variable (and/or of identifier). On the r-value side, I cannot find anything that makes it a distinct concept from the one of value, or of expression. Explanations welcome, thank you, Denis -- -- -- -- -- -- -- vit esse estrany ☣ spir.wikidot.com |
January 04, 2011 Re: terminology: "l-value" & "r-value" | ||||
---|---|---|---|---|
| ||||
Posted in reply to spir | On 01/04/2011 02:55 PM, spir wrote: > Hello, > > I'm bluffed by the 2 terms "l-value"& "r-value" used in C-line language common terminologies. I think I guess what they mean, but I don't understand the need for such absconse idioms. Why not: > l-value<-> variable > r-value<-> value (or expression) > ? > > I guess (*p) is considered an l-value. Indeed, it's a special way of denoting a variable, matching the special case of a pointer. If correct, this requires slightly extending the notion of variable (and/or of identifier). > On the r-value side, I cannot find anything that makes it a distinct concept from the one of value, or of expression. > > Explanations welcome, thank you, > Denis > -- -- -- -- -- -- -- > vit esse estrany ☣ > > spir.wikidot.com > rvalue is easier than value-not-bound-to-a-memory-address. lvalue is easier than value-with-memory-address. Both lvalues and rvalues are values, both can be expressions, and lvalues doesn't have to be variables. Perhaps a better terminology could have been chosen, but changing them doesn't provide real benefits, as far as I can tell. |
January 04, 2011 Re: terminology: "l-value" & "r-value" | ||||
---|---|---|---|---|
| ||||
Posted in reply to spir | On Tue, 04 Jan 2011 08:55:07 -0500, spir <denis.spir@gmail.com> wrote:
> Hello,
>
> I'm bluffed by the 2 terms "l-value" & "r-value" used in C-line language common terminologies. I think I guess what they mean, but I don't understand the need for such absconse idioms. Why not:
> l-value <-> variable
> r-value <-> value (or expression)
> ?
>
> I guess (*p) is considered an l-value. Indeed, it's a special way of denoting a variable, matching the special case of a pointer. If correct, this requires slightly extending the notion of variable (and/or of identifier).
> On the r-value side, I cannot find anything that makes it a distinct concept from the one of value, or of expression.
>
> Explanations welcome, thank you,
> Denis
lvalue stands for left value, rvalue stands for right value. They describe which side of the equation they are on:
lvalue = rvalue;
Why these terms instead of something more natural? Well, I have no idea :) If I were to guess, it would be that no natural term could exactly describe the meaning, and also that using natural terms are subjective. There's no mistaking what lvalue and rvalue mean becausey they are defined by the language itself.
I'm sure Walter probably knows the origin, l and r values are really compiler terms, and he's been writing compilers for a long time.
-Steve
|
January 04, 2011 Re: terminology: "l-value" & "r-value" | ||||
---|---|---|---|---|
| ||||
Posted in reply to Steven Schveighoffer | Steven Schveighoffer wrote:
> They describe which side of the equation they are on
arg, no! please replace "equation" by "assignExpression".
-manfred
|
January 04, 2011 Re: terminology: "l-value" & "r-value" | ||||
---|---|---|---|---|
| ||||
Posted in reply to Manfred_Nowak | On Tue, 04 Jan 2011 12:56:53 -0500, Manfred_Nowak <svv1999@hotmail.com> wrote:
> Steven Schveighoffer wrote:
>
>> They describe which side of the equation they are on
>
> arg, no! please replace "equation" by "assignExpression".
please replace arg with argh!
;)
But whatever floats your boat.
-Steve
|
January 04, 2011 Re: terminology: "l-value" & "r-value" | ||||
---|---|---|---|---|
| ||||
Posted in reply to Steven Schveighoffer | Steven Schveighoffer wrote:
> please replace
done. :-)
-manfred
|
January 04, 2011 Re: terminology: "l-value" & "r-value" | ||||
---|---|---|---|---|
| ||||
Posted in reply to Manfred_Nowak | On Tue, 4 Jan 2011 17:56:53 +0000 (UTC)
"Manfred_Nowak" <svv1999@hotmail.com> wrote:
> > They describe which side of the equation they are on
>
> arg, no! please replace "equation" by "assignExpression".
lol, great! this is one of the reasons why in my dream language, assignment would be denoted by any other sign *but* "=".
Denis
-- -- -- -- -- -- --
vit esse estrany ☣
spir.wikidot.com
|
Copyright © 1999-2021 by the D Language Foundation