c - Python memory model for this program -
my query on below program respect symbols storing values , functions, when ran on http://pythontutor.com/.
my question is:
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
is 'const' name of 32/64 bit memory area storing value 2 type assigned integer?
add()/sub()/other functions shown in objects column per diagram, so, how perceive functions being stored objects? how visualise it?
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 value2
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 functionsub()
?
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
Post a Comment