La arquitectura de Von Neumann, que se aplica a casi todos los ordenadores que se han construido durante toda la historia de la informática, construye las computadoras a partir de dos partes claramente separadas: la unidad de proceso, en la que se ejecutan las instrucciones, y la memoria, donde se guardan los datos. En consecuencia, casi todos los programas que ejecutamos en nuestros ordenadores se dividen en dos secciones diferentes: el algoritmo (las instrucciones ejecutables) y los datos que constituyen la información aportada al algoritmo (su input).
Una separación tan clara se parece a los dos conceptos que aparecen en el título de este artículo: