On 04/19/2015 06:28 PM, Joel Goldstick wrote:
On Sun, Apr 19, 2015 at 6:23 PM, boB Stepp <robertvst...@gmail.com> wrote:
On Sun, Apr 19, 2015 at 4:05 PM, Dave Angel <da...@davea.name> wrote:
On 04/19/2015 03:08 PM, boB Stepp wrote:


Or is the real point that we are adding an abstraction
layer so we don't even have to think about where objects are
physically stored in RAM?


Somebody keeps track, but the address is not necessarily constant, and not
necessarily stored in any references.  The references (bindings) are
abstract, and the details are unimportant to the user.  For example, the
jython system does not use addresses at all.  And an object gets moved
around from time to time without its references knowing it.

The last sentence in this paragraph has me intrigued. Why would an
object, once it has been created, be moved? What practical benefit
does doing this give?

boB

I'm guessing memory management.  You want to have large contiguous
blocks of memory available for large objects.  If a small object is
surrounded by available memory, you might want to move it to some
smaller empty spot.

Good answer. The java jvm garbage collector is free to move blocks around to defrag the free space.

FWIW, I'm told the ID value used is a simple integer, that indexes a list containing the actual addresses.

So in this case, the binding value is an integer, not an address.

--
DaveA
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to