[Python-Dev] Why is Bytecode the way it is? (original) (raw)

Skip Montanaro skip at pobox.com
Thu Jul 8 16:21:16 CEST 2004


>> Python's VM is currently a stack machine.  There are arguments for
>> making it a register machine, but if we want to do that, lets go the
>> whole hog and not have some kind of half-assed hybrid.

Paul> I'm not really talking about a register machine either. I don't
Paul> understand why you would want to copy values from a heap in "main
Paul> memory" into a register *still in main memory* to have the
Paul> bytecodes operate on them to store to a register and then back to
Paul> main memory.

When I looked at this a long time ago it I seem to recall that roughly 60% of the opcodes executed did nothing more than copy values to or from the stack (of course, pushes and pops are some of the more efficient opcodes in the instruction set). A three-address machine model would reduce this data movement substantially.

Skip



More information about the Python-Dev mailing list