Programmēšanas paradigma

Programmēšanas paradigmas ir veids, kā sagrupēt programmēšanas valodas pēc to darbības jomām. Valodas var būt vairāk nekā vienā paradigmā.

Dažās paradigmās tiek aplūkots koda izpildes veids, piemēram, blakusparādību atļaušana vai nepieciešamība veikt darbības noteiktā secībā. Citas paradigmas aplūko veidu, kā kods tiek grupēts, piemēram, kodu sadalot vienā vai divās daļās (vai daudzos mazos gabaliņos). Dažas citas paradigmas aplūko kārtību un daļas, kas veido programmu tādu, kāda tā ir.

Pastāv divas galvenās paradigmu grupas - imperatīvā un deklaratīvā. Viena valoda var būt abas vienlaikus.

Saturs

·         1 Imperatīvā programmēšana

·         2 Deklaratīvā programmēšana

·         3 Citas paradigmas

·         4 Pārskats

·         5 Paradigmu problēmas

·         6 Vēsture

o    6.1 Mašīnas kods

o    6.2 Proceduālās valodas

o    6.3 Objektorientēta programmēšana

o    6.4 Deklaratīvās paradigmas

·         7 Saistītās lapas

·         8 Atsauces

·         9 Citas tīmekļa vietnes

Imperatīvā programmēšana

Imperatīvajās programmās programmētāji datoram uzdod sakārtotu darbību kopumu, kas jāveic, lai kaut ko izdarītu. Ja kāds vēlas, lai dators uzzīmē kaķa seju, viņš varētu dot norādījumus, piemēram, "Uzzīmē apli šeit, uzzīmē divus mazākus apļus tur, uzzīmē divus trīsstūrus virsū" un tā tālāk. Imperatīvajām programmām dažkārt ir daudz blakusparādību.

Pastāv divas galvenās imperatīvās paradigmas, un daudzos gadījumos valodai ir abas:

  • Strukturēts - datoram tiek doti norādījumi, kas vienmēr ir noteiktā secībā. Tādi soļi kā "atgriezties pie 3. soļa" (tā sauktie goto paziņojumi) nav atļauti.
    • Procedūras - Programma ļauj programmētājam dot nosaukumu rīkojumu sarakstam, kas šos rīkojumus pārvērš par "procedūru", kuru var izmantot vēlāk. Lielākā daļa strukturēto valodu arī ir procedurālas.
  • Objektorientēts - idejas datoram tiek skaidrotas, izmantojot objektus, koda daļas, kurām ir noteikts rīkojumu kopums un informācija par tiem.

Deklaratīvā programmēšana

Deklaratīvajās paradigmās programmētājs norāda datoram, kas jādara, nevis to darīt. Ja programmētājs vēlas, lai dators uzzīmē kaķa seju, viņš varētu dot norādījumus, piemēram, "Uzzīmē seju, uzzīmē divas acis, divas ausis un muti".

Vispazīstamākās deklaratīvās paradigmas ir:

  • Funkcionāls - lielāko daļu darba veic funkcijas bez blakusparādībām.
  • Loģika - tiek izklāstīts faktu kopums, un tad tiek uzdots viens vai vairāki "jautājumi".
  • Notikuma vadīts - koda daļas tiek iestatītas tā, lai tās darbotos, kad notiek noteiktas lietas (piemēram, datora ieslēgšana).

Citas paradigmas

Dažas paradigmas var atrast gan imperatīvajās, gan deklaratīvajās valodās. Šīs paradigmas parasti ir sastopamas kopā ar kādu no iepriekš minētajām paradigmām, nevis atsevišķi.

Pārskats

Programmēšanas valodas tiek grupētas pēc paradigmām, tāpat kā mašīnas var grupēt pēc to izmantošanas veida.

Dažas valodas atbilst tikai vienai galvenajai paradigmai, piemēram,:

  • Smalltalk (objektorientēta)
  • Asambleja (imperatīva, bet ne strukturēta vai objektorientēta)
  • Haskell (funkcionālā valoda)
  • Prolog (loģika)

Lielākā daļa valodu ir vairāk nekā viena paradigma. Dažas no tām izceļas ar to, ka tām ir vairāk nekā viena:

  • Scala (objektorientēta, funkcionāla, paralēla)
  • Visual Basic (notikumu vadīta, objektorientēta)
  • Common Lisp (procesuālais, funkcionālais, objektorientētais, meta)
  • Shēmas (funkcionālās, procesuālās, meta)
  • Perl (funkcionālā, procesuālā, meta, objektorientētā, uz notikumiem orientētā)
  • Python (funkcionālais, objektorientētais, procedurālais)
  • Ruby (funkcionālā, objektorientētā, procesuālā)
  • Wolfram Language (funkcionālā, procesuālā, vispārīgi deklaratīvā)
  • Oz (loģiskais, funkcionālais, imperatīvais, objektorientētais)
  • F# (funkcionālā, imperatīvā, objektorientētā, meta)

Vairāk paradigmu ne vienmēr ir labi. Viens gadījums, kad mazāk paradigmu var būt laba lieta, ir tad, ja ir valoda, kas ir tikai funkcionāla. Šādā valodā funkcija dažreiz veic mazāk darba (piemēram, tikai tās grupas daļas, kas tai patiešām ir jāpārbauda), nekā tas būtu jādara, ja valoda būtu arī procedurālā valoda.

Daudzas programmēšanas paradigmas ir tikpat labi pazīstamas gan ar lietām, ko tās neļauj cilvēkiem darīt, gan ar tām, ko tās ļauj cilvēkiem darīt. Viens no gadījumiem, kad tas ir taisnība, ir funkcionālās valodas. Ja funkcionālā valoda ir tikai vai galvenokārt funkcionāla, tā parasti nepieļauj blakusparādības. Cits gadījums, kad tas ir taisnība, ir strukturētā programmēšana: tā atšķiras no parastajām imperatīvajām valodām, jo neļauj programmētājiem izmantot "goto paziņojumus" (paziņojumus, kas norāda programmai pāriet uz iepriekšējo soli). Šā un citu iemeslu dēļ cilvēki dažkārt uzskata, ka jaunās paradigmas nepieļauj pietiekami daudz lietu. Tomēr dažkārt ir labi, ja dators neļauj cilvēkiem darīt lietas: tas var palīdzēt cilvēkiem izvairīties no problēmām ar viņu kodu un ļaut datoram izdarīt minējumus, lai tas varētu ātrāk palaist kodu, vai pat pārbaudīt kodu, vai tajā nav problēmu, pirms tas darbojas!

Pārskats par dažādām programmēšanas paradigmām saskaņā ar Peter Van RoyZoom
Pārskats par dažādām programmēšanas paradigmām saskaņā ar Peter Van Roy

Paradigmu problēmas

Dažiem cilvēkiem, kas pēta programmēšanas valodas, nepatīk, ka programmēšanas valodu grupēšanai tiek izmantotas paradigmas, piemēram, Hārperam un Krišnamurti. Šie cilvēki saka, ka daudzas programmēšanas valodas nevar vienkārši sagrupēt paradigmās, jo valodas aizņemas lietas un idejas no daudzām paradigmām.

Vēsture

Laika gaitā ir radītas jaunas paradigmas, un cilvēki uz tām ir norādījuši vai nu tajā laikā, vai arī atskatoties atpakaļ. Viena no pirmajām paradigmām, kas tika atzīta par jaunu programmēšanas veidu, bija strukturētā programmēšana 20. gadsimta 60. gados. Ideja par "programmēšanas paradigmu" ir radusies 1978. gadā, ja ne agrāk, kad Roberts V. Floids (Robert W. Floyd) to izmantoja, mācot. Vārdu "paradigma" tā, kā to saprot Roberts, pirmo reizi lietoja Tomass Kūns savā grāmatā "Zinātnisko revolūciju struktūra" (1962).

Mašīnas kods

Viszemākā līmeņa (vistuvāk tam, kā datoram patīk saprast lietas) un vecākā programmēšanas paradigma ir mašīnkods, imperatīva paradigma. Mašīnkodā norādījumi ir tikai skaitļu kopums noteiktā secībā. Asamblēšanas valoda ir mazliet zemāka līmeņa (un mazliet mazāk veca). Asamblēšanas valodā datora norādījumiem ir doti mnemonikas vārdi (vieglāk iegaumējami nosaukumi), un atmiņas adresēm (norādījumiem, kā atrast kādu informācijas vienību datorā) var dot nosaukumus. Šīs valodas dažkārt sauc par pirmās un otrās paaudzes valodām.

Sešdesmitajos gados asemblera valodas tika uzlabotas, pievienojot jaunas lietas, piemēram, bibliotēkas COPY, makrokodus ("īpašā" koda daļas, kas pirms programmas palaišanas tiek pārveidotas par parasto kodu), palaides procedūras (norādījumu kopas, kurām tiek dots nosaukums un kuras tiek saglabātas vēlāk) un mainīgos (vienumus, kuriem tiek doti nosaukumi un kuri tiek saglabāti vēlāk) no ārpus programmas. Tas ļāva cilvēkiem izmantot kādu kodu vairāk nekā vienā projektā un neuztraukties par aparatūras specifiskām problēmām (problēmām, kas rodas tikai viena veida datoriem), pateicoties tādām komandām (norādījumu nosaukumiem) kā READ/WRITE/GET/PUT.

Asambleju izmantoja un dažkārt joprojām izmanto sistēmās, kurās ir svarīgi, lai kods būtu ātrs, un to daudz izmanto arī iegultajās sistēmās, jo tā ļauj lietotājam precīzi kontrolēt, ko mašīna dara.

Proceduālās valodas

Pagājušā gadsimta sešdesmito gadu beigās cilvēki sāka izgudrot procesuālās valodas. Šīm trešās paaudzes valodām (pirmajām no tām, ko tagad saucam par augsta līmeņa valodām) bija vārdi, kas bija saistīti ar to, ko tās mēģināja atrisināt. Piemēram,

  • COBOL (COmmon Business Oriented Language) - izmanto tādus vārdus kā file, move un copy.
  • FORmula TRANSLĀCIJA (FORTRAN) - izmanto matemātiskus vārdus un simbolus ( formas, ko izmanto rakstīšanā un drukāšanā). Tā tika izstrādāta galvenokārt zinātnei un inženierzinātnēm.
  • ALGOrithmic Language (ALGOL) - paredzēta algoritmu (soļu kopumu, kas datoram norāda, kas jādara) rakstīšanai. Tā izmanto matemātiskus vārdus un simbolus, tāpat kā FORTRAN.
  • Programming Language One (PL/I) - bija paredzēts, ka tā būs noderīga ikvienam.
  • Iesācēju universālais simbolisko instrukciju kods (BASIC) - izveidots, lai palīdzētu iesācējiem programmēt.
  • C - programmēšanas valoda, kas paredzēta daudzām lietām. Deniss Ričijs pie tās strādāja no 1969. līdz 1973. gadam AT&T Bell Labs.

Objektorientēta programmēšana

Pēc tam, kad daudzi cilvēki bija sākuši izmantot procedurālās valodas, tika izgudrotas objektorientētās programmēšanas valodas. Šajās valodās dati un to "metodes" (veidi, kā manipulēt ar datiem) ir apvienoti vienā "objektā". Daži programmētāji, piemēram, Ričards Stallmans (Richard Stallman), nepiekrīt, ka objektorientētās valodas ir labāk piemērotas ideju skaidrošanai datoram nekā procedurālās valodas.

Tā kā objektorientēta programmēšana ir paradigma, nevis valoda, cilvēki ir izveidojuši tādas objektorientētas asamblēšanas valodas kā HLA (High Level Assembly).

Deklaratīvās paradigmas

Tajā pašā laikā daži cilvēki izstrādāja deklaratīvās programmēšanas valodas. Valoda, kas ir labi pazīstama kā deklaratīvā valoda, ir SQL (valoda, kurā var pievienot un noņemt lietas no tabulām).

Saistītās lapas

  • Domāšanas veids
  • Tipa sistēma
  • Tjūringa pilnīgums

Jautājumi un atbildes

J: Kas ir programmēšanas paradigma?


A: Programmēšanas paradigma ir veids, kā sagrupēt programmēšanas valodas pēc to darbības veida.

J: Kādas ir divas galvenās paradigmu grupas?


A: Divas galvenās paradigmu grupas ir imperatīvā un deklaratīvā.

J: Ar ko atšķiras imperatīvā un deklaratīvā paradigma?


A: Imperatīvās paradigmas aplūko veidu, kādā kods tiek izpildīts, piemēram, pieļaujot blakusparādības vai nepieciešamību veikt darbības noteiktā secībā, savukārt deklaratīvās paradigmas aplūko veidu, kādā kods tiek sagrupēts, piemēram, sadalot kodu vienā vai divās daļās (vai daudzās mazās daļās).

Vai valoda var būt gan imperatīva, gan deklaratīva paradigma?


A: Jā, valoda vienlaikus var būt gan imperatīvā, gan deklaratīvā paradigma.

J: Kā programmēšanas paradigma sagrupē valodas?


A: Programmēšanas paradigmas sagrupē valodas pēc tā, ko tās dara. Tajās tiek skatīts, kā kods tiek izpildīts, kā tas ir sagrupēts un kādā secībā un no kādām daļām sastāv programma.

J: Vai bez imperatīvās un deklaratīvās programmēšanas paradigmas ir arī citi programmēšanas paradigmu veidi?


A: Jā, ir arī citi programmēšanas paradigmu veidi, ne tikai imperatīvā un deklaratīvā. Piemēram, dažas aplūko veidu, kādā kods tiek izpildīts (piemēram, pieļaujot blakus efektus), bet citas aplūko veidu, kādā kods tiek grupēts (piemēram, kodu sadalot vienā vai divās daļās).

Vai katra valoda pieder tikai vienam programmēšanas paradigmas veidam?


A: Nē, ne katra valoda pieder tikai vienam programmēšanas paradigmas veidam; dažas valodas var būt vairāk nekā viena veida paradigmas.

AlegsaOnline.com - 2020 / 2023 - License CC3