Algoritmický jazyk

Na to, aby sme mohli s niekým alebo niečím komunikovať, potrebujeme dorozumievací prostriedok – jazyk. Jazyk sám osebe však zvyčajne nestačí. Darmo ovládate deväť cudzích jazykov, keď osoba, s ktorou sa potrebujete dohovoriť je Eskimák a jazyk, ktorý používa, sa k tým vašim svojimi výrazovými prostriedkami nepribližuje ani zďaleka.
Na komunikáciu s iným objektom (človekom, strojom) je potrebné používať jazyk, ktorému rozumie. Pôvodne bol jazyk iba prostriedkom komunikácie medzi ľuďmi, dnes je už aj prostriedkom komunikácie medzi človekom a strojom. Jazyk, pomocou ktorého sa komunikuje so strojom, má však oproti klasickému jazyku určité špecifiká:
  • ľudský jazyk obsahuje množstvo slov (napr. slovenčina pozná vyše 110.000 slov, angličtina takmer 800.000), pričom je v neustálom vývoji, slová do jazyka pribúdajú a zanikajú. Jazyk na komunikáciu so strojom vyžaduje stabilný a nemenný zoznam umožňujúci presnú špecifikáciu príkazov, ktoré výrobca do zariadenia napr. implementuje pri jeho výrobe,
  • zatiaľ čo ľudské jazyky obsahujú množstvo výnimiek, „umeleckých obratov“ (frazeologizmy, príslovia a porekadlá, zdrobneniny a pod.), synoným (slová s rovnakým významom), homoným (rovnaké slová s odlišným významom, napr. hlava, list, koreň) a tvarov (pády, časovanie slovies, časy a neurčitok), v strojových jazykoch je vyžadovaná presnosť, konkrétnosť a adresnosť,
  • prirodzený ľudský jazyk navyše obsahuje množstvo prvkov a konštrukcií, ktoré sú pri špecifikovaní postupov zbytočné.
Nemožnosť využitia prirodzeného jazyka v komunikácii so strojom viedla k potrebe úpravy prirodzeného jazyka a redukcii jeho obsahu na úzku skupinu slov, pomocou ktorých je možné popísať požadovanú činnosť a špecifikovať jej parametre.
Podobne ako sa nepodarilo ľudstvu dohovoriť na jednotnom jazyku (známym pokusom je napr. esperanto), ani pri algoritmických jazykoch nedošlo k dohode a vo všeobecnosti sa používa viacero z nich. Najčastejšie sú:
  • vývojové diagramy kde je postupnosť činností popisovaná prostredníctvom grafických značiek a textu v nich,
  • štruktúrogramy predstavujú zhutnenú obdobu vývojových diagramov, ktorá však oproti vývojovým diagramom nie je definovaná normou,
  • obrázkové jazyky umožňujú programovať prostredníctvom spájania obrázkov, hlavným reprezentantom sú detské programovacie jazyky napr. programovanie kocky RoboLabu v legu,
  • rozhodovacie tabuľky popisujú zložitejšie problémy pozostávajú zo zoznamu podmienok, kombinácie podmienok, zoznamu činností a kombinácie činností (pre našu prácu nie sú vhodné),
    slovný zápis algoritmu v národnom jazyku umožňujú formalizované jazyky, ktoré sa od programovacích jazykov odlišujú použitím slov národného jazyka namiesto príkazov programovacieho jazyka a voľnejším zápisom ostatných štruktúr,
  • programovacie jazyky sú v oblasti algoritmizácie najpoužívanejším prostriedkom a predstavujú formalizované algoritmické jazyky založené na redukcii slov obvykle anglického jazyka.

Na to, aby sme dokázali komunikovať prostredníctvom algoritmického jazyka, potrebujeme mať stanovené príkazy, na základe ktorých dokážeme prikázať procesoru vykonať presne stanovené činnosti. Štandardne predstavuje príkaz elementárnu činnosť, ktorú je schopný vykonávateľ algoritmu realizovať.
Vykonávaniu príkazov v takom poradí, v akom sú zapísané, hovoríme sekvencia.V niektorých prípadoch je potrebné zabezpečiť vykonanie príkazu len pri splnení definovaných podmienok. Možnosť rozhodnúť sa a vykonať príkazy na základe pravdivosti skúmaného znaku sa označuje ako vetvenie. Skladá sa z podmienky a z príkazov, ktoré sa vykonajú v prípade kladného a záporného výsledku.
Veľmi často potrebujeme časť algoritmu opakovať. Zápis umožňujúci opakovanie označujeme ako cyklus. Pri každom opakovaní je dôležité čo (telo cyklu) sa má opakovať a dokedy (podmienka cyklu) sa má opakovať.
Sekvenciu, vetvenie a cyklus označujeme ako algoritmické konštrukcie a platí, že každý algoritmus dokážeme zapísať ich vhodnou kombináciou.

Každý algoritmický jazyk má dve zložky:

operačná zložka – obsahuje sadu prostriedkov, ktoré umožňujú spracovávať údaje t.j. elementárne činnosti, ktoré dokáže procesor vykonávať. Základnými činnosťami sú príkazy a podmienky

príkazy – sú vety jazyka, ktoré prikazujú procesoru vykonať isté, presne stanovené činnosti (napr. príkaz vstupu, výstupu, priradenia). Tieto príkazy musia spracúvať nejaké objekty. V programovaní sú nimi premenné, konštanty a výrazy.

riadiaca zložka – prostriedky pre riadenie postupnosti vykonávania jednotlivých činností algoritmu (základné algoritmické konštrukcie)