Sats (programmering)

Från Wikipedia

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[redigera | redigera wikitext]

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[redigera | redigera wikitext]

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[redigera | redigera wikitext]

Särskilda programflödesstyrande satser utgör sammansatta satser, och kan klassificeras enligt följande:

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.