A programmable machine that processes data.