Un linguaggio di programmazione fortemente tipizzato è quello in cui ogni tipo di dati (come intero, carattere, esadecimale, decimale compresso e così via) è predefinito come parte del linguaggio di programmazione e tutte le costanti o variabili definite per un dato programma devono essere descritto con uno dei tipi di dati. Alcune operazioni possono essere consentite solo con determinati tipi di dati. Il compilatore del linguaggio impone la tipizzazione dei dati e la conformità all'uso. Un vantaggio di una forte tipizzazione dei dati è che impone un rigoroso insieme di regole a un programmatore e quindi garantisce una certa coerenza dei risultati. Uno svantaggio è che impedisce al programmatore di inventare un tipo di dati non previsto dagli sviluppatori del linguaggio di programmazione e limita il modo in cui si può essere "creativi" nell'usare un dato tipo di dati.