Typensystemen
Typensystemen zijn formele regels die aan uitdrukkingen in een programmeertaal een type toekennen en controleren of bewerkingen tussen die uitdrukkingen geldig zijn. Het doel is fouten vroegtijdig op te sporen, de programmastructuur beter voorspelbaar te maken en ondersteuning te bieden voor tooling en optimalisaties. Een type beschrijft wat voor soort waarde een uitdrukking vertegenwoordigt (bijv. getal, lijst, functie) en welke bewerkingen daaraan zijn toegestaan.
Er bestaan verschillende benaderingen. In statische typetalen worden veel van deze checks bij compilatie uitgevoerd, waardoor
Belangrijke concepten zijn onder meer type-inferentie (types afleiden zonder expliciete annotaties), subtyping (een type kan plaatsvullen
Typensystemen dragen bij aan type-safety: veelal geformuleerd via eigenschappen als progress en preservation, wat inhoudt dat