====== 1GL: První generace programovacích jazyků ====== **1GL** (First-Generation Language) označuje **strojový kód** (machine code). Je to jediný jazyk, kterému procesor (CPU) rozumí přímo a nativně. V této generaci neexistuje žádná abstrakce; programátor komunikuje s hardwarem pomocí binárních dat. ===== 1. Charakteristika 1GL ===== V éře první generace (přibližně 40. léta 20. století) neexistovaly kompilátory ani editory kódu. Programování znamenalo přímý zápis instrukcí pro konkrétní architekturu. * **Binární forma:** Instrukce jsou tvořeny řetězci nul a jedniček ($0$ a $1$). * **Hardwarová závislost:** Kód je vázán na konkrétní procesor. Program pro jeden stroj nelze spustit na jiném (nulová portabilita). * **Absolutní kontrola:** Programátor přímo ovládá registry procesoru a adresy v operační paměti. ===== 2. Jak vypadá strojový kód? ===== Každá instrukce v 1GL se obvykle skládá ze dvou částí: 1. **Operační kód (Opcode):** Říká procesoru, co má udělat (např. sečíst, přesunout, porovnat). 2. **Operand:** Určuje data nebo adresu v paměti, se kterými se má pracovat. **Příklad (konceptuální):** Instrukce pro sečtení dvou čísel může vypadat takto: 10110000 01100001 (Kde první část může znamenat "vlož do registru" a druhá část je hodnota $97$ v binární soustavě). ===== 3. Výhody a nevýhody ===== ^ Výhody ^ Nevýhody ^ | **Maximální rychlost:** Žádný překlad nezpomaluje běh programu. | **Extrémní náročnost:** Člověk velmi snadno udělá chybu v dlouhém řetězci bitů. | | **Efektivita:** Program využívá hardware na 100 % bez jakékoli režie. | **Nemožnost ladění:** Najít chybu (bug) v tisících nul a jedniček je téměř nadlidský úkol. | | **Žádný překladač:** Počítač nepotřebuje žádný další software k pochopení kódu. | **Nepřenositelnost:** Při změně počítače je nutné celý program napsat znovu. | ===== 4. Historické zajímavosti ===== * **Děrné štítky:** Programy v 1GL se často zadávaly pomocí děrných štítků nebo fyzickým přepínáním spínačů na předním panelu počítače. * **Programátorky a programátoři:** První programátoři (často ženy, jako např. operátorky stroje ENIAC) museli znát elektrické schéma počítače, aby pochopili, jak instrukce fyzicky protékají obvody. ===== 5. Přechod k vyšším generacím ===== Kvůli obrovské chybovosti a únavě programátorů vznikla potřeba nahradit čísla slovy. To vedlo k vytvoření: * **[[it:lang:2GL|2GL (Assembly)]]:** Nahradilo binární kódy mnemotechnickými zkratkami (např. `ADD` místo `1011`). ---- //Související články:// * [[it:hw:cpu|Architektura procesoru (CPU)]] * [[it:math:binary|Binární soustava a logika]] * [[it:lang:2GL|Druhá generace: Asembler]] //Tagy: {{tag>historie 1GL machine_code binary cpu}}//