====== 4GL: Čtvrtá generace programovacích jazyků ====== **4GL** (Fourth-Generation Language) jsou programovací jazyky navržené pro specifické účely, které se vyznačují vysokou úrovní abstrakce. Zatímco [[it:lang:3GL|3GL]] (jako C++ nebo Java) jsou **procedurální** (říkáte počítači "jak" má něco udělat), 4GL jsou často **neprocedurální** nebo **deklarativní** (říkáte počítači "co" má udělat). Cílem 4GL je zkrátit dobu vývoje, snížit náklady a umožnit i lidem, kteří nejsou profesionálními programátory, efektivně pracovat s daty. ===== 1. Klíčové vlastnosti 4GL ===== * **Deklarativní přístup:** Programátor definuje pouze požadovaný výsledek, nikoliv přesný algoritmus (např. "najdi všechny zákazníky z Prahy"). * **Vysoká abstrakce:** Jeden příkaz v 4GL může nahradit stovky řádků kódu v jazyce C nebo Java. * **Doménová orientace:** Většina 4GL je úzce zaměřena na konkrétní oblast, nejčastěji na práci s databázemi, reportování nebo analýzu dat. * **Rychlost vývoje (RAD):** Umožňuje velmi rychle vytvářet prototypy aplikací. ===== 2. Oblasti využití a příklady ===== ==== A. Dotazovací jazyky (Query Languages) ==== Nejznámějším zástupcem celé čtvrté generace je **SQL** (Structured Query Language). Slouží k manipulaci s daty v relačních databázích. * **Příklad:** `SELECT Name FROM Users WHERE City = 'Brno';` ==== B. Generátory sestav (Report Generators) ==== Nástroje pro vytváření komplexních tiskových výstupů a grafů z databází bez nutnosti psát kód pro formátování (např. Oracle Reports, Crystal Reports). ==== C. Statistické a matematické systémy ==== Jazyky jako **R**, **SAS** nebo **MATLAB** umožňují provádět složité analýzy pomocí vestavěných funkcí pro statistiku a vizualizaci. ==== D. Low-code a No-code platformy ==== Moderní nástroje jako Salesforce (SOQL) nebo systémy pro automatizaci podnikových procesů (ERP/CRM), kde se logika definuje pomocí maker nebo jednoduchých skriptů. ===== 3. Srovnání generací ===== ^ Vlastnost ^ 3GL (např. C++) ^ 4GL (např. SQL) ^ | **Zaměření** | Univerzální (všeobecné) | Specifické (data, reporty) | | **Styl zápisu** | Jak to udělat (krok za krokem) | Co chci získat (výsledek) | | **Efektivita programátora** | Nižší (více psaní) | Vysoká (méně psaní) | | **Výkon programu** | Velmi vysoký (optimalizovaný) | Nižší (závisí na interpretu/stroji) | ===== 4. Výhody a nevýhody ===== **Výhody:** * Výrazně méně chyb díky kratšímu kódu. * Snadná údržba a čitelnost pro analytiky. * Rychlá reakce na změny požadavků uživatelů. **Nevýhody:** * **Omezenost:** Jazyk je skvělý v tom, k čemu byl navržen (např. databáze), ale nepoužitelný pro jiné věci (např. psaní ovladačů hardwaru). * **Hardwarové nároky:** Vyšší abstrakce vyžaduje více paměti a výkonu [[it:hw:cpu|procesoru]]. * **Ztráta kontroly:** Programátor nemá kontrolu nad tím, jak přesně se data na pozadí zpracovávají. ---- //Související články:// * [[it:lang:3GL|Třetí generace jazyků]] * [[it:db:sql|Základy jazyka SQL]] * [[it:lang:5GL|Pátá generace: Umělá inteligence]] //Tagy: {{tag>programming_languages 4GL sql data_analysis development_speed}}//