Programmēšanas paradigma ir programmēšanas stils jeb ideju un rekomendāciju kopums, kas nosaka programmu rakstīšanas veidu. Piemēram, objektorientētajā programmēšanā programmētājam jādomā par programmu, kas sastāv no savstarpēji saistītiem objektiem, kamēr funkcionālajā programmēšanā programma sastāv no secīgi izsaucamām funkcijām.[1]

Paradigma ir virziens, veids vai pieeja plašā nozīmē. Populārākās programmēšanas valodu paradigmas ir imperatīvā, deklaratīvā, funkcionālā un objektorientētā.[2] Programmēšanā ir divas pamatparadigmas:

  • imperatīvā
    • strukturālā
    • procedurālā
  • deklaratīvā
    • funkcionālā
    • loģiskā

Imperatīvā paradigma

labot šo sadaļu

Imperatīvā paradigma jeb procedurālā paradigma, ir tradicionāls veids, kā notiek programmēšanas process. Tā ietver komandu virknes, lai veiktu noteiktas operācijas. Imperatīvo paradigmu pārstāv dažādas programmēšanas valodas, tostarp mašīnkoda valodas, asambleri, kā arī populāras valodas, piemēram, Fortran, COBOL, BASIC, C un Pascal.[3]

Imperatīvā programma ir komandu secība (angļu: imperativepavēles izteiksme), kas jāizpilda, lai risinātu uzdevumu. Šī pieeja izmanto mainīgos, lai glabātu programmas tekošo stāvokli, un piešķiršanas komandas, lai mainītu šo stāvokli secīgi. Imperatīvā programmēšana prasa, lai dators izpildītu noteiktas darbības secīgi, sekojot algoritmam. Programma sastāv no komandām, kuras datoram ir jāizpilda secīgi, lai risinātu uzdevumu. Lai īstenotu nosacītas operācijas un ciklus, programmā var tikt izmantotas pārejas instrukcijas (goto), kas maina izpildīšanas secību. Šī pieeja ir bieži izmantota tradicionālās programmēšanas praksē.[1]

Strukturālā programmēšana

labot šo sadaļu

Strukturālā programmēšana ir imperatīvās paradigmas paveids, kuras pamatā ir programmas attēlojums kā ligzdotu bloku struktūra, neizmantojot goto operatoru. Saskaņā ar šo paradigmu jebkura programma sastāv no trim vadības struktūrām: secība, zarošana, cikls.[1]

Procedurālā programmēšana

labot šo sadaļu

Procedurālā programmēšana ir imperatīvās paradigmas paveids, kurā secīgi izpildāmie operatori tiek savākti apakšprogrammās, kas ir funkcionāli pabeigtās koda vienības.[1]

Deklaratīvā paradigma

labot šo sadaļu

Deklaratīvā pieejā nosaka uzdevuma aprakstu. Piemēram, kā un kur paņem datus, kā tā apstrādāt un ko darīt ar rezultātu. Deklaratīvās programmas neizmanto mainīgā jēdzienu un piešķiršanas operatoru.[1] Atšķirībā no imperatīvās, nenosaka, kā izpildīt noteiktu uzdevumu, bet gan “kas ir problēma” vai “kā problēma varētu tikt reprezentēta”. Tipiskākais deklaratīvās programmēšanas pārstāvis ir Prolog, kas no tās realizācijas aspekta tiek saukta arī par loģisko programmēšanas valodu. Kaut kādā nozīmē pie deklaratīvās paradigmas pieder arī SQL pieprasījumu valoda.[2]

Funkcionālā paradigma un programmēšana

labot šo sadaļu

Funkcionālās paradigmas ietvaros programmēšanas process ir kā programmas konstruēšana no "melnajām kastēm", katra no kurām saņem noteiktus datus ievadā un izejā atgriež noteiktu rezultātu. Matemātikā tādas “melnās kastes” sauc par funkcijām. Šīs paradigmas pārstāvji ir Lisp un Haskell.[2]

Funkcionālā programmēšana ir deklaratīvās paradigmas paveids, kurā uzdevums tiek aprakstīts kā funkciju izsaukšanas rezultāts no sākotnējiem datiem un citu funkciju rezultātiem, un tas ne uzņemas skaidru programmas stāvokļa saglabāšanu mainīgajos.[1]

Loģiskā programmēšana

labot šo sadaļu

Loģiskā programmēšana ir programmēšanas paradigma, kuras pamatā ir formāla loģika. Loģiskā programmēšanas valodā rakstīta programma ir loģiskā veidā rakstītu teikumu kopa, kas izsaka faktus un noteikumus par kādu problēmu domēnu. Galvenās loģiskās programmēšanas valodu saimes ir Prolog, atbilžu kopas programmēšana (ASP) un Datalog.[4]

Objektorientētā programmēšana

labot šo sadaļu

Objektorientētajā programmēšanā programma tiek uztverta kā savstarpēji saistītu un mijiedarbojošu objektu kopums. Tāpat kā reāliem objektiem dabā, OOP objektiem arī ir savas individuālas īpašības, tie var veikt kādas darbības, kā arī nodot un saņemt informāciju no citiem objektiem. Objektorientētai programmēšanai ir īpašības, kas ir raksturīgas gan imperatīvajai gan deklaratīvajai paradigmām.[1]