%Python es considerado un lenguaje de "alto nivel", y al menos en algunas de sus
%aplicaciones puede parecerlo sin problemas; no obstante, para aquellos que deseen
%ver los engranajes detrás, vean esta herramienta, dis.
>>> import dis
>>> def fib(n):
... if n==0 or n==1: return 1
... else:
... return fib(n-1)+fib(n-2)
...
>>> dis.disassemble(fib.func_code)
2 0 LOAD_FAST 0 (n)
3 LOAD_CONST 1 (0)
6 COMPARE_OP 2 (==)
9 POP_JUMP_IF_TRUE 24
12 LOAD_FAST 0 (n)
15 LOAD_CONST 2 (1)
18 COMPARE_OP 2 (==)
21 POP_JUMP_IF_FALSE 28
>> 24 LOAD_CONST 2 (1)
27 RETURN_VALUE
4 >> 28 LOAD_GLOBAL 0 (fib)
31 LOAD_FAST 0 (n)
34 LOAD_CONST 2 (1)
37 BINARY_SUBTRACT
38 CALL_FUNCTION 1
41 LOAD_GLOBAL 0 (fib)
44 LOAD_FAST 0 (n)
47 LOAD_CONST 3 (2)
50 BINARY_SUBTRACT
51 CALL_FUNCTION 1
54 BINARY_ADD
55 RETURN_VALUE
56 LOAD_CONST 0 (None)
59 RETURN_VALUE
No hay comentarios:
Publicar un comentario