В случае с Python вы можете указать байт-код для данной функции с модулем dis .
from dis import dis
def foo():
x=(y+4)*z
print x
dis(foo)
дает вам:
2 0 LOAD_GLOBAL 0 (y)
3 LOAD_CONST 1 (4)
6 BINARY_ADD
7 LOAD_GLOBAL 1 (z)
10 BINARY_MULTIPLY
11 STORE_FAST 0 (x)
3 14 LOAD_FAST 0 (x)
17 PRINT_ITEM
18 PRINT_NEWLINE
19 LOAD_CONST 0 (None)
22 RETURN_VALUE
Некоторое из этого является посторонним (например, LOAD_CONST и RETURN_VALUE в конце предназначены для неявного return None
в foo()
), но Python, кажется, помещает y и 4 в стек, добавляет, нажимает z, умножает и написать в х. Затем он нажимает х и печатает