====== Programovací jazyky ====== ===== Generace jazyků ====== ==== První generace – strojový kód ==== Strojový kód obsahuje pouze (obvykle) hexadecimální zápis operačních instrukcí, se kterými pracuje přímo procesor. Kód výsledného programu není pro člověka čitelný. ==== Druhá generace – Assembler ==== Strojový kód, který však je částečně čitelný. Dochází zde k nahrazení číselných kódů slovním zadáním instrukcí (např. ADD). ==== Třetí generace – zdrojový kód ==== Kód nejlépe čitelný pro člověka. Při zápisu pracuje s proměnnými a matematickými operacemi. Zdrojový kód se vytváří pomocí programovacích jazyků, které je nutné kompilací převést do zdrojového kódu, kterému rozumí samotný procesor. {{ :informatika:pojmy:kompiler.png | Vztahy mezi generacemi }} //[[https://www.itnetwork.cz/cplusplus/cecko/zaklady/tutorial-uvod-do-programovaciho-jazyka-c|Zdroj]]// ===== Paradigmata ===== Programovacími paradigmaty se chápou různé styly programovacích jazyků: - Imperativní – popisují přesný a postupný postup řešení (algoritmus) programu; čistě imperativní jazyky (BASIC) pro tento popis nevyužívají žádné ucelené struktury, nýbrž pouze proměnné a příkazy – skoky v kódu pak lze řešit pomocí příkazu GOTO (což se ovšem bere jako špatný princip) * Strukturovaný (C, Pascal) – využívají řídící struktury, ve kterých se vykonávají příkazy stále primárně postupně, můžeme ale posloupnost upravit selekcí (výběrovým větvením – podmínkami) anebo iterací (opakováním příkazů – cykly) * Objektově orientovaný (Java, C++, Python) – navíc zavádí přiřazování výkonného kódu datům (objektům) a celý program vidí jako soubor několika objektů - Deklarativní – nepopisují algoritmus, nýbrž deklarují, co má program udělat * Funkcionální (Haskell, Lisp) – vytváří výpočet vyhodnocováním matematických funkcí * Logické (Prolog) – pro výpočet využívá operací matematické logiky