Typsystem

Från Rilpedia

Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

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;

Kombination av statisk och dynamisk typning

Personliga verktyg
På andra språk