Programmeringsspråk, konstruert språk til å skrive programmer til datamaskiner.

Faktaboks

Uttale
programmˈeringsspråk

Et programmeringsspråk omfatter ulike typer grunnleggende kommandoer som en datamaskin kan utføre. Ord i et programmeringsspråk er alltid entydige, og de er gjerne hentet fra grener som matematikk og logikk.

Syntaksen i et programmeringsspråk må følges nøye. Det minste avvik fra «grammatikken» fører til at programmet går i stå eller datamaskinen gjør feil.

Lavnivå- og høynivåspråk

Det går et grunnleggende skille mellom lavnivåspråk og høynivåspråk. Lavnivåspråk er nært knyttet til selve maskineriet i en datamaskin, nærmere bestemt prosessoren. Høynivåspråk tilbyr et høyere abstraksjonsnivå, slik at man ikke forholder seg til prosessorens registre, men i stedet til funksjoner, variabler og andre logiske objekter og operasjoner.

Koding i lavnivåspråk

Programmer i lavnivåspråk som maskinkode og assemblerspråk er i praksis uleselige. En kommando i maskinkode kan for eksempel se slik ut:

  • 10110000 01100001

Den tilsvarende kommandoen i assembler ser slik ut:

  • Mov al, 061h

Her vil en erfaren assemblerprogrammerer straks se at det dreier seg om å flytte det heksadesimale tallet 61 (tilsvarende 97 i titallsystemet) til et register i prosessoren, kalt al.

Der maskinkode (binærkode), bare har sekvenser av 0 og 1, skrives assemblerkode med noenlunde forståelige ord (mov stammer fra det engelske ordet move ).

For å legge sammen to tall i assembler, må man befale maskinen å hente dem fra bestemte adresser i minnet, legge dem i hvert sitt register i prosessoren, legge dem sammen i et gitt register, og så flytte resultatet til en adresse i minnet. En enkel operasjon fordrer følgelig svært mange linjer.

Koding i høynivåspråk

Kode i høynivåspråk som C++, Java, Python og så videre, er straks mer leselig. Har man definert for eksempel variablene alfa, beta og gamma, kan man sørge for at gamma er lik summen av alfa og beta ved å skrive

  • gamma := alfa + beta

Som leses som gamma settes lik alfa pluss beta.

Flere elementer går igjen i de fleste høynivåspråk:

  • ulike typer variabler, som tekst, tegn, heltall, reelle tall, logiske variabler (med verdiene sann og usann)
  • operasjoner som utføres på disse variablene, blant annet aritmetiske operasjoner på tall og logiske operasjoner
  • kommandoer relatert til inn- og utdataenheter
  • adgangen til å gruppere rekker av kommandoer og operasjoner i enheter som funksjoner, prosedyrer og objekter, slik at man slipper å måtte gjenta dem hver gang de skal utføres
  • adgangen til å strukturere operasjoner som skal gjentas et visst eller vekslende antall ganger

Kompilatorer

Problemet er at det som er leselig for mennesket ikke kan leses direkte av maskinen. Dette løses ved hjelp av et spesielt program, kalt kompilator , som oversetter høynivåkoden til binære sekvenser, og som blant annet sørger for at den binære koden ikke går surr i hvor de forskjellige variablenes verdi er plassert i datamaskinens minne. Noen høynivåspråk kompileres ikke, men tolkes. Når koden kjøres, oversettes den fortløpende til maskinkode av en egen tolk.

Programmeringsspråket Java har valgt en tredje vei: Java-kode kompileres til binærkode som ikke kjører direkte på den fysiske maskinen, men i stedet på en «virtuell» maskin. Denne virtuelle maskinen er et program som oversetter Javas maskinuavhengige binærkode til maskinens egen binærkode. Det er denne egenskapen som gjør at Java-programmer kan kjøre på alt fra stormaskiner til PC-er og mobiltelefoner, bare disse har en velfungerende «Java virtuell maskin» (JVM).

Fjerdegenerasjonsspråk

En opererer også med ytterligere en kategori programmeringsspråk, kalt fjerdegenerasjonsspråk. Disse er – til forskjell fra andre høynivåspråk – «ikke-prosedurale». Dette betyr at programmet ikke angir en stegvis algoritme som sier hvordan ting skal gjøres og i hvilken rekkefølge. Et program i et fjerdegenerasjonsspråk sier hva som skal gjøres og overlater til maskinen å avgjøre hvordan.

Programmer skrevet i slike språk er ofte langt kortere enn programmer skrevet i eldre språk, idet én kommando kan erstatte titalls linjer programkode. Fjerdegenerasjonsspråk regnes for å være lettere å bruke uten spesiell programmeringskunnskap, men de har vist seg å ikke kunne erstatte de tradisjonelle høynivåspråkene fullt ut. Blant fjerdegenerasjonsspråkene regnes spørrespråk for databaser, som SQL og QBE.

Noen sentrale programmeringsspråk

Flere tusen programmeringsspråk og varianter av dem er konstruert for ulike formål. For de viktigste finnes internasjonale standarder.

Noen kjente programmeringsspråk er Python, Java, C, C++, C# og PHP, som alle låner ord og uttrykk fra engelsk. Det norskutviklede språket Simula (første versjon i 1964) har gått ut av bruk, men gav sentrale bidrag til utviklingen av objektorienterte programmering.

Les mer i Store norske leksikon

Kommentarer

Kommentarer til artikkelen blir synlig for alle. Ikke skriv inn sensitive opplysninger, for eksempel helseopplysninger. Fagansvarlig eller redaktør svarer når de kan. Det kan ta tid før du får svar.

Du må være logget inn for å kommentere.

eller registrer deg