My realization:
In a world of reference semantics (RS), there are two kinds of entities — names and values. Whereas in a world of value semantics (VS), there is only one kind of entities — values.
Examples:
-
assignment/definition
a = b
RS interpretation: namea
is bound to the value that nameb
is currently bound to
VS interpretation: valuea
is assigned to be a copy of valueb
-
function call
foo(p)
RS interpretation:foo
works with the value that namep
is bound to
VS interpretation:foo
works with a copy of valuep