Por que o código não é executado na ordem em que foi escrito?: Introdução aos modelos de memória de CPU e compiladores