Macchina di Von Neumann, il disegno di base del moderno, o classico, computer. Il concetto è stato completamente articolato da tre dei principali scienziati coinvolti nella costruzione di ENIAC durante la seconda guerra mondiale—Arthur Burks, Herman Goldstine e John von Neumann—in “Preliminary Discussion of the Logical Design of an Electronic Computing Instrument” (1946). Anche se molti ricercatori hanno contribuito idee direttamente o indirettamente alla carta, von Neumann è stato l’autore principale, ed è spesso citato come il certificato di nascita di informatica.
Tra i principi enunciati nel documento c’era che i dati e le istruzioni dovevano essere conservati in un unico archivio e che le istruzioni dovevano essere codificate in modo da essere modificabili da altre istruzioni. Questa è stata una decisione estremamente critica, perché significava che un programma poteva essere trattato come dati da un altro programma. L’ingegnere tedesco Konrad Zuse aveva considerato e respinto questa possibilità come troppo pericolosa per i suoi computer Zuse. Ma la sua inclusione da parte del gruppo di von Neumann ha reso possibili linguaggi di programmazione di alto livello e la maggior parte dei progressi nel software dei successivi 50 anni. Successivamente, i computer con programmi memorizzati erano noti come macchine von Neumann.
Un problema risolto dall’idea del programma memorizzato era la necessità di un rapido accesso alle istruzioni. ENIAC aveva utilizzato plugboards, che aveva il vantaggio di consentire le istruzioni da leggere elettronicamente, piuttosto che da lettori di schede meccaniche molto più lenti, ma aveva anche lo svantaggio di rendere ENIAC molto difficile da programmare. Ma se le istruzioni potevano essere memorizzate nella stessa memoria elettronica che conteneva i dati, potevano essere accessibili il più rapidamente possibile. Una conseguenza immediatamente evidente era che i computer futuri avrebbero bisogno di molta più memoria di ENIAC.