In informatica, la programmazione generica è un paradigma di programmazione in cui gli algoritmi accettano come parametri le tipologie di dati da trattare, oltre ai dati veri e propri. Questo approccio, introdotto nel linguaggio ML nel 1973,[1][2] permette di scrivere codice generico, del quale possono essere auto-generate multiple versioni specializzate che differiscono solo per i tipi di dati trattati, riducendo così la necessità di scrivere codici essenzialmente duplicati.