Sats (programmering)
- För andra betydelser, se Sats.
Den här artikeln behöver källhänvisningar för att kunna verifieras. (2023-12) Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kan ifrågasättas och tas bort utan att det behöver diskuteras på diskussionssidan. |
En sats eller programsats är inom datavetenskap den minsta fristående enheten i ett imperativt högnivåspråk. En sats kan i sin tur innehålla komponenter, exempelvis ett kommando, en tilldelning och/eller ett eller flera uttryck.
Vid strukturerad programmering gör man skillnad på enkla och sammansatta satser, där de senare kan innehålla satser som komponenter. En följd av enkla satser exekveras sekventiellt, i tur och ordning, till skillnad från sammansatta satser som kan ha funktion som programflödesstyrande satser.
Vid vissa hårt typade programmeringsspråk, exempelvis C, skiljer man på sats och definition. En sats ger vid kompilering upphov till körbar kod. En definition definierar en identifierare, exempelvis en konstant, ett makro eller en funktion, eller deklarerar datatyp för en variabel och reserverar arbetsminne för densamma. Källkoden för ett program skrivet i ett sådant språk består således av en serie definitioner och satser.
Vid lågnivåspråk (maskinkods- och assemblerprogrammering) kallas den minsta fristående körbara enheten i ett program istället instruktion, vars komponenter i sin tur utgörs av operander.
Satsavskiljare
Satser skiljs åt med en identifierare som fungerar som satsavskiljare, exempelvis semikolon (;) vid språk som Pascal, C och Java. I andra språk, exempelvis Basic och Matlab, kan vagnretur ha funktion av satsskiljare.
I bland annat Matlab kan även kommatecken (,) och semikolon (;) användas som satsavskiljare, så att flera satser kan läggas på samma rad. Vid semikolon undertrycks då utskrift av satsens beräkningsresultat.
Enkla satser
Här följer exempel på fyra enkla satser i programspråket C:
- Anrop av funktion utan värde (av datatyp void):
printf("hello, world\n");
- Variabeltilldeldning med funktionsanrop:
a = myfunction(b);
- Operator som medför variabeltilldelning:
n++;
- Kommando följt av operand bestående av matematiskt uttryck:
return a/n;
Enkla satser utgörs i regel antingen av en variabeltilldelning eller av ett kommando. Vid Pascal motsvarar det senare ett proceduranrop, och vid C och Java ett funktionsanrop av datatyp void, det vill säga utan datavärde. Dessa tilldelningar och kommandon kan i sin tur innehålla matematiska och logiska uttryck, vilka kan innehålla funktionsanrop och operatorer.
Sammansatta satser
Särskilda programflödesstyrande satser utgör sammansatta satser, och kan klassificeras enligt följande:
- iteration (slinga) exempelvis for-sats eller while-sats),
- villkor (selektion), exempelvis if-sats, select eller case/switch-sats,
- olika konstruktioner för att förgrena processer i parallella programtrådar eller programprocesser, som förekommer i vissa språk.
Vid strukturerad programmering kan programflödesstyrande satser i sin tur innehålla en sekvens av satser. En sådan sekvens inleds och avslutas med måsvingar ({ och }) i exempelvis C, C++ och Java, och med BEGIN och END i bland annat Pascal och Modula.
Media som används på denna webbplats
Författare/Upphovsman: Tkgd2007, Licens: CC BY-SA 3.0
A new incarnation of Image:Question_book-3.svg, which was uploaded by user AzaToth. This file is available on the English version of Wikipedia under the filename en:Image:Question book-new.svg