Il linguaggio C risponde a una difficoltà concreta degli anni Settanta: come scrivere un sistema operativo abbastanza vicino all’hardware da restare efficiente senza doverlo rifare quasi interamente a ogni cambio di computer?
Dennis Ritchie sviluppò C ai Bell Labs nel contesto di Unix. Il linguaggio non cerca di nascondere la macchina: offre invece un piccolo insieme di astrazioni — tipi, funzioni, strutture e puntatori — che il compilatore può tradurre efficientemente su architetture diverse. Questo compromesso spiega la sua diffusione, ma anche gli errori di memoria che linguaggi più recenti cercano di impedire.
