Programovacie

Programovacie paradigmy predstavujú spôsob zoskupovania programovacích jazykov podľa toho, čo robia. Jazyky môžu patriť do viacerých paradigiem.

Niektoré paradigmy sa zameriavajú na spôsob, akým sa kód spúšťa, napríklad na povolenie vedľajších efektov alebo na to, aby sa veci vykonávali v určitom poradí. Iné paradigmy sa pozerajú na spôsob, akým je kód zoskupený, napríklad na rozdelenie kódu na jednu alebo dve časti (alebo namiesto toho na mnoho malých častí). Niektoré ďalšie paradigmy sa pozerajú na poradie a časti, ktoré vytvárajú program taký, aký je.

Existujú dve hlavné skupiny paradigiem, imperatívna a deklaratívna. Jazyk môže byť súčasne obidvoma paradigmami.

Obsah

·         1 Imperatívne programovanie

·         2 Deklaratívne programovanie

·         3 Iné paradigmy

·         4 Prehľad

·         5 Problémy s paradigmami

·         6 História

o    6.1 Strojový kód

o    6.2 Procedurálne jazyky

o    6.3 Objektovo orientované programovanie

o    6.4 Deklaratívne paradigmy

·         7 Súvisiace stránky

·         8 Odkazy

·         9 Iné webové stránky

Imperatívne programovanie

V imperatívnych programoch programátori zadávajú počítaču súbor usporiadaných krokov, ktoré treba vykonať, aby sa niečo urobilo. Ak by niekto chcel, aby počítač nakreslil tvár mačky, mohol by zadať pokyny typu: "Nakresli tu kruh, tam nakresli dva menšie kruhy, na vrch nakresli dva trojuholníky" atď. Imperatívne programy majú niekedy veľa vedľajších účinkov.

Existujú dve hlavné paradigmy imperatívov a často sa v jazyku používajú obe:

  • Štruktúrované - počítač dostáva pokyny, ktoré sú vždy v určitom poradí. Kroky ako "vráť sa na krok 3" (známe ako príkazy goto) nie sú povolené.
    • Procedurálny - Program umožňuje programátorovi pomenovať zoznam príkazov, čím sa tieto príkazy zmenia na "procedúru", ktorú môže neskôr použiť. Väčšina štruktúrovaných jazykov je tiež procedurálna.
  • Objektovo orientované - myšlienky sa vysvetľujú počítaču pomocou objektov, častí kódu, ktoré majú súbor príkazov, ktoré im možno zadať, a niektoré informácie o nich.

Deklaratívne programovanie

V deklaratívnych paradigmách programátor hovorí počítaču, čo má robiť, a nie ako to má robiť. Ak by chcel, aby počítač nakreslil tvár mačky, mohol by dať pokyny typu "Nakresli tvár, nakresli dve oči, dve uši a ústa".

Najznámejšie deklaratívne paradigmy sú:

  • Funkčné - Väčšinu práce vykonávajú funkcie bez vedľajších účinkov.
  • Logika - uvedie sa súbor faktov a potom sa položí jedna alebo viacero "otázok".
  • Riadené udalosťami - časti kódu sú nastavené tak, aby sa spustili, keď sa stanú určité veci (napríklad zapnutie počítača).

Iné paradigmy

Niektoré paradigmy možno nájsť v imperatívnych aj deklaratívnych jazykoch. Tieto paradigmy sa zvyčajne vyskytujú spolu s jednou z vyššie uvedených paradigiem namiesto toho, aby sa vyskytovali samostatne.

Prehľad

Programovacie jazyky sa delia do skupín podľa paradigiem rovnako ako stroje podľa toho, na čo sa používajú.

Niekoľko jazykov patrí len do jednej hlavnej paradigmy, ako napr:

  • Smalltalk (objektovo orientovaný)
  • Assembly (imperatívne, ale nie štruktúrované alebo objektovo orientované)
  • Haskell (funkčný)
  • Prolog (logika)

Väčšina jazykov má však viac ako jednu paradigmu. Niektoré z nich sa vyznačujú tým, že majú viac ako len jednu:

  • Scala (objektovo orientovaná, funkcionálna, paralelná)
  • Visual Basic (udalosťami riadený, objektovo orientovaný)
  • Common Lisp (procedurálny, funkcionálny, objektovo orientovaný, meta)
  • Schémy (funkčné, procedurálne, meta)
  • Perl (funkčný, procedurálny, meta, objektovo orientovaný, riadený udalosťami)
  • Python (funkčný, objektovo orientovaný, procedurálny)
  • Ruby (funkčné, objektovo orientované, procedurálne)
  • Jazyk Wolfram (funkčný, procedurálny, všeobecne deklaratívny)
  • Oz (logické, funkcionálne, imperatívne, objektovo orientované)
  • F# (funkčný, imperatívny, objektovo orientovaný, meta)

Mať viac paradigiem nie je vždy dobré. Jedným z prípadov, keď môže byť menej paradigiem dobrá vec, je jazyk, ktorý je len funkcionálny. Funkcia v jednom z týchto jazykov niekedy vykonáva menej práce (napríklad prechádza len časti skupiny vecí, ktoré skutočne potrebuje), ako by mohla, keby bol jazyk aj procedurálny.

Mnohé programovacie paradigmy sú rovnako známe pre veci, ktoré ľuďom neumožňujú robiť, ako aj pre tie, ktoré im umožňujú robiť. Jedným z prípadov, keď to platí, sú funkcionálne jazyky. Ak je funkcionálny jazyk iba alebo prevažne funkcionálny, zvyčajne neumožňuje vedľajšie efekty. Iný prípad, keď to platí, je štruktúrované programovanie: od bežných imperatívnych jazykov sa líši tým, že neumožňuje programátorom používať príkazy "goto" (príkazy, ktoré hovoria programu, aby prešiel na predchádzajúci krok). Z tohto a ďalších dôvodov si ľudia niekedy myslia, že nové paradigmy neumožňujú dosť vecí. Niekedy je však v poriadku, že počítač ľuďom neumožňuje robiť veci: môže to pomôcť ľuďom vyhnúť sa problémom s ich kódom a nechať počítač odhadnúť, že tak môže spustiť kód rýchlejšie, alebo dokonca skontrolovať kód na problémy ešte pred jeho spustením!

Prehľad rôznych programovacích paradigiem podľa Petra Van RoyaZoom
Prehľad rôznych programovacích paradigiem podľa Petra Van Roya

Problémy s paradigmami

Niektorým ľuďom, ktorí študujú programovacie jazyky, sa nepáči, že sa paradigmy používajú na zoskupovanie programovacích jazykov, ako napríklad Harper a Krishnamurthi. Títo ľudia tvrdia, že veľa programovacích jazykov sa nedá jednoducho zaradiť do paradigiem, pretože jazyky si požičiavajú veci a myšlienky z mnohých paradigiem.

História

V priebehu času vznikali nové paradigmy a ľudia na ne upozorňovali buď v tom čase, alebo pri spätnom pohľade. Jednou z prvých paradigiem, ktorá bola uznaná ako nový spôsob programovania, bolo štruktúrované programovanie zo 60. rokov 20. storočia. Myšlienka "paradigmy programovania" pochádza z roku 1978, ak nie skôr, keď ju pri vyučovaní použil Robert W. Floyd. Slovo "paradigma" v zmysle, v akom ho mal na mysli Robert, prvýkrát použil Thomas Kuhn vo svojej knihe Štruktúra vedeckých revolúcií (1962).

Strojový kód

Najnižšia úroveň (najbližšia k tomu, ako počítač rád chápe veci) a najstaršia programovacia paradigma je strojový kód, imperatívna paradigma. Pokyny v strojovom kóde sú len súborom čísel v určitom poradí. Jazyk Assembly je o niečo menej nízkoúrovňový (a o niečo menej starý). V jazyku assembleru sú pokyny pre počítač pomenované mnemotechnickými názvami (ľahšie zapamätateľné názvy) a adresy pamäte (pokyny na nájdenie časti informácie v počítači) môžu byť pomenované. Tieto jazyky sa niekedy nazývajú jazyky prvej a druhej generácie.

V 60. rokoch 20. storočia sa jazyky assembleru zdokonalili pridaním nových vecí, ako sú knižnica COPY, makrá (kúsky "špeciálneho" kódu, ktoré sa pred spustením programu transformovali na normálny kód), spúšťanie procedúr (sady pokynov, ktoré dostali meno a boli uložené na neskôr) a premenné (položky, ktoré dostali meno a boli uložené na neskôr) mimo programu. To umožnilo ľuďom používať určitý kód vo viacerých projektoch a nemusieť sa obávať s hardvérovo špecifickými problémami (problémami, ktoré sa vyskytujú len na jednom druhu počítača) vďaka príkazom (názvy smerov) ako READ/WRITE/GET/PUT.

Assembly sa používal a niekedy ešte stále používa v systémoch, kde je dôležité, aby bol kód rýchly, a tiež sa často používa vo vstavaných systémoch, pretože umožňuje používateľovi presne kontrolovať, čo stroj robí.

Procedurálne jazyky

Koncom 60. rokov minulého storočia začali ľudia vymýšľať procedurálne jazyky. Tieto jazyky tretej generácie (niekoľko prvých jazykov, ktoré dnes nazývame vysokoúrovňové jazyky) mali slová súvisiace s tým, čo sa snažili riešiť. Napríklad,

  • COmmon Business Oriented Language (COBOL) - používa slová ako file, move a copy.
  • FORmula TRANslation (FORTRAN) - používa matematické slová a symboly ( tvary používané pri písaní a písaní). Bol vyvinutý najmä pre vedu a techniku.
  • ALGOrithmic Language (ALGOL) - vytvorený na písanie algoritmov (súborov krokov, ktoré hovoria počítaču, čo má robiť). Používa matematické slová a symboly, rovnako ako FORTRAN.
  • Programovací jazyk jeden (PL/I) - mal byť užitočný pre každého.
  • Univerzálny kód symbolických inštrukcií pre začiatočníkov (BASIC) - vytvorený na pomoc začiatočníkom pri programovaní.
  • C - programovací jazyk určený na mnoho vecí. Dennis Ritchie na ňom pracoval v rokoch 1969 až 1973 v AT&T Bell Labs.

Objektovo orientované programovanie

Po tom, čo mnohí ľudia začali používať procedurálne jazyky, vynašli objektovo orientované programovacie jazyky. V týchto jazykoch sú údaje a ich "metódy" (spôsoby manipulácie s údajmi) umiestnené v jednom "objekte". Niektorí programátori, ako napríklad Richard Stallman, nesúhlasia s tým, že objektovo orientované jazyky sú lepšie na vysvetľovanie myšlienok počítaču ako procedurálne jazyky.

Keďže objektovo orientované programovanie je paradigma, nie jazyk, ľudia vytvorili objektovo orientované assemblerové jazyky ako HLA (High Level Assembly).

Deklaratívne paradigmy

V tom istom čase niektorí ľudia vytvárali deklaratívne programovacie jazyky. Jazyk, ktorý je známy tým, že je deklaratívny, je SQL (jazyk na pridávanie a odstraňovanie vecí z tabuliek).

Súvisiace stránky

  • Myslenie
  • Typový systém
  • Turingova úplnosť

Otázky a odpovede

Otázka: Čo je to programová paradigma?


Odpoveď: Programovacia paradigma je spôsob zoskupenia programovacích jazykov na základe spôsobu ich fungovania.

Otázka: Aké sú dve hlavné skupiny paradigiem?


Odpoveď: Dve hlavné skupiny paradigiem sú imperatívne a deklaratívne.

Otázka: Ako sa líšia imperatívna a deklaratívna paradigma?


Odpoveď: Imperatívne paradigmy sa zameriavajú na spôsob, akým sa kód spúšťa, napríklad povoľujú vedľajšie efekty alebo sa veci musia robiť v určitom poradí, zatiaľ čo deklaratívne paradigmy sa zameriavajú na spôsob, akým sa kód zoskupuje, napríklad umiestnenie kódu do jednej alebo dvoch častí (alebo namiesto toho do mnohých malých častí).

Otázka: Môže byť jazyk zároveň imperatívnou aj deklaratívnou paradigmou?


Odpoveď: Áno, jazyk môže byť súčasne imperatívnou aj deklaratívnou paradigmou.

Otázka: Ako sa programovacia paradigma zoskupuje do jazykov?


Odpoveď: Programovacie paradigmy zoskupujú jazyky podľa toho, čo robia. Pozerajú sa na to, ako sa kód spúšťa, ako je zoskupený a v akom poradí a z akých častí sa program skladá.

Otázka: Existujú aj iné typy programovacích paradigiem okrem imperatívnej a deklaratívnej?


Odpoveď: Áno, okrem imperatívnej a deklaratívnej paradigmy existujú aj iné typy programovania. Niektoré sa napríklad pozerajú na spôsob, akým sa kód spúšťa (napríklad povoľovanie vedľajších účinkov), zatiaľ čo iné sa pozerajú na spôsob, akým sa kód zoskupuje (napríklad umiestnenie kódu do jednej alebo dvoch častí).

Otázka: Patrí každý jazyk len do jedného typu paradigmy programovania?


Odpoveď: Nie, nie každý jazyk patrí len do jedného typu paradigmy programovania; niektoré jazyky môžu patriť do viacerých typov paradigiem.

AlegsaOnline.com - 2020 / 2023 - License CC3