Programmeringsspr?k er eit kunstig spr?k som blir brukt for ? kontrollere ei datamaskin. Akkurat som menneskelege spr?k har programmeringsspr?k syntaks og semantiske reglar for ? definere meining. Til motsetning fr? menneske, s? har ei datamaskin trong til ? f? instruksjonar skildra 100 % komplett, det vil seie utan noko som helst tolking. Dette gjev s?rskilde krav til programmeringsspr?ka p? ein eintydig og komplett m?te.
Ein deler ofte programmeringsspr?k opp i h?gniv?- og l?gniv?spr?k, avhengig av kor ulikt programmeringsspr?ket er i forhold til maskinkoden kompilatoren vil lage. Assembler er eit typisk l?gniv?spr?k der ein n?rmast skriv kommandoar direkte til prosessoren. BASIC er p? den andre sida eit h?gniv?spr?k der ein kommando i programmeringsspr?ket ofte blir til fleire, og meir samansette kommandoar, i maskinkoden.
For h?gniv? programmeringsspr?k skil ein helst mellom kompilerte spr?k – der ein kompilator omset programteksten til direkte k?yrbar maskinkode – og tolka spr?k – der ein programtolk les programmet og lagar det kontinuerleg. Etterkvart har det kome til ulike mellomstadiar, s?rleg spr?k der programteksten blir omsett til ei plattformuavhengig bytekode som etterp? eksekveres av ein programtolk/eit k?yretidsmilj?. Typiske d?me p? det siste er Java, Python og Lisp. Skilnaden mellom kompilerte og interpreterte programmeringsspr?k er flytande - to forskjellige implementasjoner av same spr?k kan godt vere b?de det eine og det andre.
Det har blitt tradisjon ? demonstrere eit programmeringsspr?k ved at teksten Hello World blir produsert.
Form?let med programmeringsspr?k
[endre | endre wikiteksten]Alle dataprogram som ei datamaskin k?yrer ligg i maskinkode. D? det er upraktisk for eit menneske ? programmere direkte i maskinkode, er det laga fleire ulike programmeringsspr?k som gjer det enklare for programmeraren ? skrive eit dataprogram. For ? kunne nyttegjere seg av programmet ein skriv i eit visst programmeringsspr?k (kjeldekoden), m? ein ha ein kompilator som omset kjeldekoden til maskinkode, som d? maskina kan bruke til ? k?yre programmet.
Mange programmeringsspr?k har blitt tatt fram, endra for ? m?te nye utfordringar, blitt blanda med andre spr?k og til slutt tatt ut av bruk. Fleire fors?k p? ? ta fram universielle programmeringsspr?k har blitt gjort, men desse har alltid tapt for meir spesialiserte variantar. Trongen til forskjellige spr?k kjem av dei ulike samanhengane spr?ket skal brukast i:
- Program utgjer alt fr? sm? skript skrivne av amat?rar til enorme system skrivne av hundrevis av utviklarar.
- Programmerarar har forskjellige dugleiksniv?, alt fr? nybyrjarar til ekspertar. Vanskegrada dei forskjellige kan handtere er ulik.
- Programma m? finne ein balanse mellom storleik, fart, vedlikehaldbarheit og andre parametrar. Systema dei skal k?yre p? er alt fr? enkle mikrokontrollare til superdatamaskiner.
- Program som er ?ferdigskrive? kan vere under nesten konstant forbetring, eller dei kan vere statiske gjennom heile si levetid over fleire ti?r.
- Programmeraren sin kompetanse i eit bestemt spr?k kan ogs? vere bestemmande.
Ein generell trend innanfor utviklinga av programmeringsspr?k er at niv?et p? abstraksjonane har blitt h?gare med tida. Dei tidlegaste programmeringsspr?ka var veldig n?r datamaskina sine eigne, innebygde konsept. Etterkvart blei det bygd p? meir abstrakte konsept som let programmeraren uttrykkje idéar p? eit h?gare niv?. Dette let programmerarane skrive meir kode p? kortare tid.[1]
Idéen om at naturlege spr?k vil overta for programmeringsspr?ka blei tidleg lansert i denne prosessen. Dette m?let er framleis langt vekk, og om det eigentleg er nokon fordel er ope for debatt. Edsger Dijkstra hevda at for ? unng? meiningslause konstruksjonar er det viktig ? nytte eit formelt spr?k, og var heilt avvisande til konseptet.[2] Alan Perlis var òg avvisande til konseptet.[3]
Sj? òg
[endre | endre wikiteksten]Kjelder
[endre | endre wikiteksten]- ↑ Frederick P. Brooks, Jr.: The Mythical Man-Month, Addison-Wesley, 1982, s. 93–94.
- ↑ Dijkstra, Edsger W. On the foolishness of "natural language programming." EWD667.
- ↑ Perlis, Alan, Epigrams on Programming Arkivert 2025-08-06 ved Wayback Machine.. SIGPLAN Notices Vol. 17, No. 9, September 1982, s. 7–13.