Beyond Bytecode - A Wordcode-based Python
Beyond Bytecode: a Wordcode-based Python
Cesare Di Mauro A-Tono s.r.l.
PyCon Tre 2009 ? Firenze (Florence) May 9, 2009
Cesare Di Mauro ? PyCon Tre 2009
Beyond Bytecode: a Wordcode-based Python
May 9, 2009 1 / 30
From Python source to Bytecode
char Source pgen.c
node Parse Tree
ast.c
adsl
Abstract Syntax Tree
compile.c
Control Flow Graph
instr
compile.c
Bytecode char peephole.c
Bytecode char
Cesare Di Mauro ? PyCon Tre 2009
Beyond Bytecode: a Wordcode-based Python
May 9, 2009 2 / 30
About Python bytecodes
Bytecode stream: an opcodes mixture. ? 1 byte (no parameter) ? 3 bytes (16 bits parameter value) ? 6 bytes (32 bits parameter value) Byte order is little-endian (low byte first).
23 BINARY_ADD Single byte opcode
100 1 2 LOAD_CONST 513 (,,spam) Multi byte opcode
Cesare Di Mauro ? PyCon Tre 2009
Beyond Bytecode: a Wordcode-based Python
May 9, 2009 3 / 30
An example: Fibonaccis sequence
def fib(n): if n > 17 POP_TOP
5
18 LOAD_GLOBAL
21 LOAD_FAST
24 LOAD_CONST
27 BINARY_SUBTRACT
28 CALL_FUNCTION
31 LOAD_GLOBAL
34 LOAD_FAST
37 LOAD_CONST
40 BINARY_SUBTRACT
41 CALL_FUNCTION
44 BINARY_ADD
45 RETURN_VALUE
46 LOAD_CONST
49 RETURN_VALUE
0 (n) 1 (1) 1 ( ................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related searches
- a classifier for the snp based inference
- is beyond finance a scam
- marketing a service based business
- a team based organizational structure has a
- create a matrix in python using for
- comptia a performance based practice
- what is a computer based information system
- python pandas add column based on condition
- beyond a reasonable doubt standard
- bytecode to text
- replace a value in python list
- python range based for loop