c - Python memory model for this program -


my query on below program respect symbols storing values , functions, when ran on http://pythontutor.com/.

memory model

my question is:

  1. how python execution model above program on memory before start interpreting python program? how visualise memory layout? example c executable has code/stack/heap/extra/data segments, example, not comparing

  2. is 'const' name of 32/64 bit memory area storing value 2 type assigned integer?

  3. add()/sub()/other functions shown in objects column per diagram, so, how perceive functions being stored objects? how visualise it?

  4. as per diagram, op function pointer pointing function sub()?

every c (compiled language) program has code/data/stack/extra/heap segments loaded in memory before execution. python interpreter create memory layout every python program before start interpreting python program? if yes, how visualise memory layout?

it has kind of layout, here heap important part, every object put heap. code segment merely interpreter, data segment internal state of interpreter, , stack well.

what relevant python program heap. layout other program.

is const name of 32/64 bit memory area storing value 2 type assigned integer?

it name in current working space, (here: in module's namespace), dict makes assignments between strings , arbitrary objects. in case, makes string const refer integer object holds value 2. (this object can created newly or re-used depending on circumstances; makes no difference, immutable.)

add()/sub()/other functions shown in objects column per diagram, so, how perceive functions being stored objects? how visualise it?

as written in my comments ignacio's answer:

in case of functions, have object has fields, contain e. g. code in terms of bytecode, number of parameters has, etc. , has methods itself, example __get__() called internally binding method object, or __call__() real function call, besides __format__(), __repr__() etc.

an integer object has, somewhere deep inside, place storing actual value. in case of long() in py2, or int() in py3, stores data hold value (e. g. 2) , length needed it. besides, has number of methods. have @ output of dir(2) see having bunch of methods well, such formatting, for arithmetics, etc.

as per diagram, op function pointer pointing function sub()?

kind of, yes.

there function object, internally knows original name sub. knowledge displaying purposes.

in case, referred 2 names, op , sub. referring either of them has same result.

note there no "function pointers" per se, there references, or names, refer object of type. type of object fixed, not "type of reference" (as there no such thing).


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -