From Wikipedia, the free encyclopedia
Programmering (fra oldgræsk πρόγραμμα prógramma)[1] er en proces, som går ud på at udvikle computerprogrammer (software) til elektronisk databehandling på en computer, ofte ved hjælp af et programmeringssprog. Programmering er en underafdeling af softwareudvikling. Formålet med et program er overordnet at modtage nogle input-data, udføre en opgave på disse (f.eks. beregninger, udskrivning, kommunikation med database) og som resultat tilbagelevere nogle output-data.
Udviklingen af et program er en proces bestående af det at skrive kildekode, testning, fejlretning (også kaldet aflusning, eng. debugging) og vedligeholdelse af kildekoden. Programmet skrives som regel som ren tekst i et programmeringssprog, som har en defineret syntaks for koden. Hvis der er tale om et compileret sprog, oversættes (compileres) kildekoden først til maskinkode eller et anden mere maskinnær kode. I denne compilering opdages også eventuelle syntaksfejl. Den oversatte maskinkode kan derefter køres af computeren. Hvis der er tale om et fortolket sprog, kører fortolkeren programmet direkte fra kildekoden, og først undervejs i kørselen opdages eventuelle syntaksfejl.
Programmeringen er en del af hele systemudviklingsprocessen, og forudsætningen for at programmere er, at der først er gennemført en analyse af, hvilke krav systemet skal opfylde over for brugerne. Dette er beskrevet i en kravspecifikation. Herefter designes systemet, og programmeringen gennemføres.
Der er en løbende debat om hvorvidt kodning af programmer er en kunst, et håndværk eller en ingeniør disciplin. Generelt anses god programmering for en afmålt anvendelse af alle tre, hvor målet er at producere en effektiv software-løsning som kan videreudvikles. Disciplinen afviger fra mange andre tekniske professioner, da programmører, generelt set, ikke behøver licens eller bevis på en standardiseret (eller offentligt reguleret) certifikation for at kalde sig selv "programmører" eller endda "softwareingeniør".
Data i et program skal tilhøre en bestemt datatype. Hvilke datatyper, der kan anvendes, afhænger af programmeringssproget, men groft sagt kan de deles op i:
Primitive datatyper
Sammensatte datatyper
Objekter
For at regne på de enkelte datatyper opstiller man regneudtryk, der består af dataværdier og operatorer. Operatorerne kan deles op i:
Derudover har de enkelte programmeringssprog en række ekstra operatorer for at håndtere sprogets sætninger og datatyper (især objekterne).
En vigtig del af et programmeringssprog er dets operatorpræcedens, der angiver rækkefølgen for at bruge de enkelte operatorer, hvis der optræder flere forskellige i samme udtryk.
En dataværdi placeres ofte i en eller flere variable (pladsholder). En variabel er kendetegnet ved et alfanumerisk variabelnavn og en bestemt datatype, men dens konkrete værdi kan skifte undervejs i programmet. Har man brug for en pladsholder, der ikke må skifte værdi, har de fleste sprog mulighed for at definere en konstant.
For at opfylde sine formål gennemgår programmet nogle algoritmer, der er sekvenser af beregninger. De enkelte trin i sprogets implementering af en algoritme kaldes sætninger, som grundlæggende opdeles i:
Forgreninger er noget af det mest basale i et program, fordi grundlaget for computerberegninger netop er forgreninger, hvor der overalt evalueres på, om noget er sandt eller falsk. For at en algoritme ikke blot er en lineær sekvens af beregninger, men kan variere beregningerne afhængig af de givne data, er man nødt til at vurdere på, hvorvidt en betingelse er opfyldt eller ej. Enhver forgrening indledes derfor med en betingelse. Forgreninger kan også være indlejrede i hinanden (eng. nested), så man kan gå tre eller flere veje det givne sted i algoritmen.
I de ældste programmeringssprog implementerede man forgreninger ved hjælp af etiketter (eng. labels) ved bestemte sætninger eller linienumre kombineret med GOTO-sætninger, der fortalte, hvor i programmet man skulle gå hen. GOTO-sætninger kunne dog nemt medføre fejl i programmets flow, fordi der til enhver "gren" i en forgrening skulle være en GOTO-sætning både for at starte på grenen og for at afslutte den. I dag har man andre metoder til at vise, at en gruppe sætninger hører sammen i en "gren". Som regel bruger man nøgleord som IF ... THEN ... ELSE ... for at implementere en forgrening, eller SWITCH ..., SELECT ... el.lign. ved en bredere forgrening.
Hvis en gruppe sætninger skal udføres flere gange, indfører man en løkke i programmet. Også her skal der anvendes en betingelse, der skal evalueres hver gang en iteration i løkken indledes eller afsluttes. Et meget vigtigt element i programmeringen af en løkke er at sikre sig, at gruppen af sætninger i løkken ændrer på data på en sådan måde, at betingelsen på et tidspunkt får programmet til at hoppe væk fra løkken. Hvis ikke, går programmet ind i en uendelig løkke med fatale følger for dets gennemførelse.
Også løkker blev i de ældste programmeringssprog implementeret vha. GOTO-sætninger, og ligesom i en forgrening kunne det være komplekst at placere GOTO-sætninger rigtigt i programmet. I dag er løkker implementeret med nøgleord som f.eks. WHILE ... DO ... , REPEAT ... UNTIL ... eller FOR ... NEXT ... .
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.