DiProgrammeringsparadigmer er forskellige stilarter, forskellige “måder” at programmere på. Der findes en masse forskellige paradigmer, herunder nogle populære paradigmer som procedurel programmering, objektorienteret programmering, funktionel programmering osv. Og nogle, der ikke er så populære, som f.eks. imperativ programmering, deklarativ programmering, begivenhedsstyret programmering osv. Hvis du er nysgerrig, findes der en meget god oversigt over programmeringsparadigmer her. I dette indlæg vil vi diskutere et populært af dem, som er Procedural Programming.
Tl; dr;
Procedural programmering er et af de mest populære programmeringsparadigmer derude. Ved at følge procedurel programmering opdeler vi koden i mindre enheder kaldet funktioner eller procedurer, så den er lettere at genbruge, og flowet i udførelsen er fra top til bund. Denne stil er let at forstå og implementere. Derfor undervises der ofte i den på introduktionskurser i programmering.
Andre blogindlæg i serien:
Programmeringsparadigmer – er objektorienteret programmering bedre?
Hvad er procedurel programmering?
Procedural programmering er en metode i programmeringen, som har en støtte til at opdele funktionaliteterne i en række procedurer. I procedurel programmering opdeles et stort program i mindre håndterbare dele kaldet procedurer eller funktioner. Her prioriteres funktioner frem for data. I et processuelt programmeringssprog består et program grundlæggende af en sekvens af instruktioner, som hver især fortæller computeren, at den skal gøre noget, f.eks. læse input fra brugeren, foretage den nødvendige beregning, vise output.
def add_number(a, b): return a + b# workflow starts here# call function add_number() to add 1 and 2 together and print the result to screenprint(add_number(1, 2))# execute add_number() function 5 times and print the result to screenfor i in range(5): print(add_number(i, 1))# workflow ends here
Når et program bliver større, opdeles det derefter i mindre enheder kaldet procedure eller funktioner. Det er meningen, at der skal skrives en række funktioner til udførelse af en bestemt opgave. Disse funktioner tillader ikke kodedobling på grund af det samme funktionskald fra flere steder. Denne teknik er kun egnet til mellemstore softwareapplikationer
I procedurel programmering anvendes to typer data, lokale og globale data. Data inden for funktionen kaldes lokale data, og de data, som ikke er inden for nogen funktion, kaldes globale data. Lokale data er kun tilgængelige for den eneste funktion, hvor de er deklareret. Så hver funktion kan få adgang til sine lokale data såvel som til globale data.
// this is a global variable$globalVar = 1;function addNumber($a, $b) { // this is a local variable $randomNumber = rand(); return $globalVar + $randomNumber + $a + $b;}
De lokale data for en funktion er ikke tilgængelige for andre funktioner. Hvis der er data, som to eller flere funktioner skal have adgang til, skal de gøres globale. Globale data er imidlertid sårbare over for en anden programmør, som kan blive ændret uden at vide det. Den særskilte inddeling af data og funktioner er en dårlig model for den virkelige verden. Derfor modellerer den proceduremæssige programmeringstilgang ikke et system i den virkelige verden perfekt.
COBOL, FORTRAN, C, Pascal er nogle programmeringssprog, der kan implementere proceduremæssig programmering.
Kendetegn ved proceduremæssig programmering
Et stort program er opdelt i små overskuelige procedurer eller funktioner. Dette reducerer kodedobling, hvilket forbedrer læsbarheden og vedligeholdbarheden af koden.
Differente funktioner kan dele data via globale variabler. Funktioner er fuldstændig isolerede, og hvis vi derfor ønsker at dele data, skal vi deklarere det i det øverste scope.
Funktioner kan ændre globale data. Da globale data overføres fra funktion til funktion; i løbet af transformationen kan de globale data ændres i funktionskæder.
Top-down-metodologi. Som tidligere nævnt følger procedurel programmering top-down-metodikken, arbejdsgangen går fra top til bund.
Fordele ved procedurel programmering
- Kodningen er let og enkel.
- Koderne har mulighed for at blive genbrugt i flere dele af programmet.
- Programmeringsparadigmet bruger mindre hukommelse på computeren.
- Det er lettere at spore kodernes flow i det program, der er skrevet i det procedurale programmeringsparadigme.
- Programmeringsparadigmet anses for at være bedst til generel programmering at lære og implementere.
Begrænsninger eller ulemper ved procedural programmering
- Fokus på funktioner frem for data.
- I store programmer er det svært at identificere tilhørsforholdet til globale data.
- Brug af globale data er fejlbehæftet, og det kan være en hindring i tilfælde af vedligeholdelse og forbedringer.
- Modifikation af globale data kræver ændring af de funktioner, der bruger dem.
- Vedligeholdelse og forbedring af programkode er stadig vanskelig på grund af globale data.
- Det proceduremæssige programmeringsparadigme modellerer ikke det virkelige problem særlig godt, da funktioner er handlingsorienterede og ikke rigtig svarer til problemets elementer.
Summary
Procedureprogrammering tilbyder bestemt en masse fordele, en af dem er nem at lære og implementere. Nye programmører kan starte deres rejse ved at lære at skrive kode i procedurel stil. Det vil hjælpe dem med at forstå, hvordan et bestemt programmeringssprog fungerer.
Men på grund af dets begrænsning bruger virkelige applikationer i den virkelige verden ikke procedurel programmering. Derfor bliver de studerende nødt til at lære andre paradigmer for at blive udsat for virkelige problemer.
Tak for læsningen. Du kan gennemse flere indlæg om teknologi her.
Af Tuan Nguyen