typesystemen
Een typesysteem is een formeel mechanisme in een programmeertaal dat bepaalt welke waarden en operaties geldig zijn. Het koppelt elke uitdrukking aan een type en definieert regels voor hoe types met elkaar kunnen samengaan. Het doel is fouten vroegtijdig detecteren, programma’s leesbaarder maken en optimalisaties mogelijk maken, bijvoorbeeld geheugenbeheer of efficiëntie.
Typen kunnen statisch of dynamisch zijn. Bij statisch typen wordt typecheck gedaan bij compilatietijd en code
Verder onderscheiden typesystemen zich op basis van hoe streng ze omgaan met compatibiliteit. Nominale typing vergelijkt
Daarnaast bestaan er geavanceerde concepten zoals generics (parametrische polymorfie), afhankelijke typen en verfijnde typen. Gradual typing
Een type-systeem is meestal een deel van de compiler of runtime en kan de uitvoering semantiek beïnvloeden.