Programmeringssprog: Forskelle mellem versioner

Content deleted Content added
Linje 43:
{{uddybende|datatype}}
 
Et [[typesystem]] definerer hvordan et programmeringssprog klassificerer værdier og udtryk sådan at de hver især har [[typeDatatype|typer]]r som adskiller sig fra hinanden. Et typesystem definerer også hvordan typerne indbyrdes opfører sig. Formålet med et typesystem er at kunne verificere og tvinge at programmer til en vis grad opfører sig korrekt.
 
Nogle programmeringssprog tillader at man midlertidigt bryder ud af typesystemet (for eksempel ved at ''caste'' en variabels type til en anden, hvilket er muligt i C, C++ og Java). Det kan være en fordel hvis det man prøver at udtrykke faktisk er et gyldigt program, selvom typesystemet ikke kan godkende det, men det er en ulempe idet typesystemet ikke længere tjener et formål i den del af programmet. I C kan det blandt andet resultere i segmenteringsfejl, og i Java kan undtagelsen NullPointerException kastes.
Linje 55:
Et programmeringssprog kaldes gængst ''typet'' hvis det i nogen grad benytter typer.
 
Blandt ''utypede'' sprog findes [[assemblersprog]] hvor en hvilken som helst operation kan udføres på en hvilken som helst mængde data. Blandt utypede programmeringssprog af [[højniveau (programmering)|højere niveau]] findes [[BCPL]] og nogle varianter af [[Forth (programmeringssprog)|Forth]].
 
Man kan inddele typede sprog på flere måder, blandt andet i ''stærkt/svagt'' eller ''statisk/dynamisk'' afhængigt af hvor strikst typesystemet er og hvor i processen af programmets oversættelse og afvikling at typetjek sker. Nogle programmeringssprog understøtter såkaldte ''afhængige typer'' (eng. ''dependent types'') hvor hver type angiver hver enkelt værdi den kan tage (modsat typer som ''int'' og ''float'' i gængse programmeringssprog, der kan tage værdier i et omfattende interval).