Typsystem
Från Rilpedia
Ett typsystem definierar inom datavetenskapen hur ett programspråk klassifierar värden och uttryck som typer, hur det kan manipulera dessa och hur de kan interagera med varandra.
Innehåll |
Typcheckning
Processen där typerna kontrolleras, typcheckning, kan äga rum under kompilationen (statisk kontroll) eller vid exekveringen (dynamisk kontroll). Om språkets specifikation kräver strikta regler om typning (dvs. mer eller mindre tillåter konverteringar mellan typer som inte förlorar information), kan man kallas språket
Statisk typning
Ett programspråk sägs ha statisk typning när en variabel tilldelas en datatyp vid kompilation och sedan behåller den under resten av programmets livslängt. Språk som C, C++, Java och Pascal är statiskt typade. Statisk typning gör det möjligt att tidigare upptäcka eventuella fel samtidigt som det tillåter effektivare exekvering (dvs. snabbare eller reducerad minnesanvändning).
Exempel på statisk typning i C# eller Java:
/* Deklarerar en variabel av typen int (heltal)
och initierar den med 2 */
int e = 2;
/* Deklarerar en variabel av typen string (textsträng)
som tilldelas texten "Hej" */
string str = "Hej";
/* Dessa variabler behåller sina typer under hela körningen.
Följande operation är inte tillåten. */
string str = true; //Värdet true (boolean: sant eller falskt)
Dynamisk typning
Dynamiskt typade variabler kan byta datatyp under exekvering.
Exempel på dynamisk typning i PHP:
/* Deklarerar en variabel och tildelar den ett värde av typen int (heltal) */
$e = 256;
/* Tilldelar ett nytt värde till variabeln. Denna gången ett värde av typen bool.
Kompilatorn känner av detta och ändrar variabelns typ. */
$e = true;