====== COBOL (Common Business-Oriented Language) ====== **COBOL** je imperativní, procedurální a od roku 2002 i objektově orientovaný programovací jazyk. Byl vytvořen v roce 1959 na popud amerického ministerstva obrany pod vedením **Grace Hopperové**. Jeho cílem bylo vytvořit jazyk, který se blíží přirozené angličtině a je čitelný i pro manažery, nikoliv jen pro programátory. ---- ====== Hlavní charakteristiky ====== * **Užvaněnost (Verbosity):** COBOL používá velmi dlouhou syntaxi plnou anglických slov (např. místo symbolu ''+'' se používá slovo ''ADD''). * **Zpracování dat:** Je excelentní v hromadném zpracování dat a v přesné desítkové aritmetice (např. při výpočtech úroků v bankách), kde by běžná binární aritmetika mohla způsobit chyby v zaokrouhlování. * **Struktura:** Programy jsou pevně rozděleny do čtyř "divizí" (Divisions), což zajišťuje přísnou organizaci kódu. ---- ====== Struktura programu ====== Každý program v COBOLu musí obsahovat tyto části: 1. **Identification Division:** Název programu a informace o autorovi. 2. **Environment Division:** Specifikace počítače a souborů, se kterými program pracuje. 3. **Data Division:** Definice všech proměnných a datových struktur. 4. **Procedure Division:** Samotná logika programu (výpočty, podmínky). ===== Příklad kódu: ===== IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, World!'. STOP RUN. ---- ====== Proč je stále důležitý? ====== Možná vás překvapí, že i v roce 2025 COBOL stále "řídí svět": * **Bankovnictví:** Odhaduje se, že přes 70 % všech bankovních transakcí na světě stále zpracovávají programy v COBOLu. * **Mainframy:** Jazyk běží na obřích sálových počítačích (Mainframes), především od společnosti IBM, které jsou extrémně spolehlivé. * **Obrovský objem kódu:** Existují stovky miliard řádků kódu v COBOLu. Přepisování do moderních jazyků (Java, Python) je extrémně drahé a rizikové. ---- ====== Výhody a nevýhody ====== **Výhody:** * **Škálovatelnost:** Dokáže efektivně zpracovat miliony záznamů najednou. * **Čitelnost:** Díky anglické syntaxi je snadné pochopit, co program dělá (pokud znáte anglicky). * **Dlouhověkost:** Kód napsaný před 40 lety obvykle bez problémů funguje i na dnešních systémech. **Nevýhody:** * **Nedostatek expertů:** Většina programátorů COBOLu odchází do důchodu a mladí programátoři se jazyk nechtějí učit. * **Pomalý vývoj:** Psaní kódu v COBOLu je zdlouhavé ve srovnání s moderními jazyky. * **Izolovanost:** Těžko se integruje s moderními webovými a cloudovými službami bez speciálních nástrojů. ---- ====== Problém roku 2000 (Y2K) ====== COBOL byl v centru pozornosti před rokem 2000. Staré programy šetřily pamětí a ukládaly rok pouze jako dvě cifry (např. ''98''). Hrozilo, že v roce 2000 počítače "uvidí" rok ''00'' jako 1900, což by zhroutilo bankovní systémy. Díky obrovskému úsilí programátorů byla většina chyb opravena včas. ---- //Související pojmy: Mainframe, Grace Hopper, Legacy systém, Y2K, Algol, Fortran.//