Delovanje C++
C++ je preveden jezik. V bistvu se celoten program prevede pred izvajanjem. Zaradi tega C++ ne more imeti
dinamičnih tipov spremenljivk, ker se ne morejo dinamično med izvajanjem spreminjati. Sam proces
prevajanja ima 3 korake. Najprej je predprocesor, ki vbistvu samo ureja tekst. Vse kar je
označeno z # popravi. Potem je na vrsti prevajalnik, ki prevede kodo v Assembly. To so
vbistu že
ničle in enice o katerih govorimo. Assembly je skupek funkcij, ki jih procesor računalnika že pozna.
Nazadnje je na vrsti linker, ki vse prevedene datoteke poveže v eno, ki jo lahko poženemo (.exe).
Delovanje Pythona
Python je tolmačen (angl: interpreted) jezik, kar pomeni da prevajanje v ničle in enice poteka
sproti z izvajanjem programa. Pred tem se sicer že prevede v "Python byte code", na kakršen način
deluje tudi mnogo hitrejši jezik Java, vendar ga v času izvajanja vpočasnjuje preverjanje tipov
spremenljivk ostalih elementov, ki jih ni že prej.
Delovanje lahko pospešimo z uporabo razširitev Pythona kot so Numba, Numpy, Cython. Te uporabljajo
različne trike, za pospešitev tolmačenja: npr. Cython uporablja že prevedene funkcije napisane v C-ju,
Numba pa shrani že prevedene funkcije, da jih pri poznejši uporabi ni potrebno prevesti.
Kljub vsem tem optimizacijam, ki jih lahko izvedemo, je Python še zmeraj več stokrat počasnejši.