Obsah
2GL: Druhá generace programovacích jazyků
2GL (Second-Generation Language) označuje jazyky symbolických instrukcí, známé především pod souhrnným názvem Asembler (Assembly Language). Tato generace představuje první krok od čistě binárního kódu k textovému zápisu, který je srozumitelný pro člověka.
Stále se jedná o nízkoúrovňový jazyk (low-level language), což znamená, že je úzce spjat s architekturou konkrétního procesoru.
1. Charakteristika 2GL
Na rozdíl od první generace (1GL), kde se používaly nuly a jedničky, zavádí 2GL tzv. mnemotechnické pomůcky (zkratky).
- Mnemotechnické kódy: Místo binárního kódu „01101101“ píše programátor zkratku jako ADD, MOV, SUB nebo JMP.
- Symbolické adresy: Programátor nemusí znát přesnou číselnou adresu v paměti, ale může používat názvy (např. proměnné).
- Asembler (Překladač): Program napsaný v 2GL musí být převeden do 1GL pomocí speciálního programu zvaného asembler.
- Závislost na hardwaru: Kód je stále psán pro konkrétní instrukční sadu (např. x86, ARM). Kód pro jeden procesor nebude fungovat na jiném.
2. Ukázka kódu (x86 Assembly)
Typický program v asembleru vypadá jako posloupnost instrukcí pro manipulaci s registry procesoru:
MOV AL, 61h ; Načti hexadecimální hodnotu 61 do registru AL ADD AL, 1 ; Přičti 1 k hodnotě v registru AL RET ; Návrat z funkce
3. Výhody a nevýhody
| Výhody | Nevýhody |
|---|---|
| Vysoký výkon: Kód je téměř stejně rychlý jako strojový kód. | Nízká čitelnost: I jednoduché operace vyžadují mnoho řádků kódu. |
| Přímý přístup k HW: Ideální pro ovladače a nízkoúrovňové systémy. | Žádná přenositelnost: Program je vázán na konkrétní hardware. |
| Malá velikost: Výsledný program zabírá minimum paměti. | Složitý vývoj: Programátor musí detailně znát architekturu CPU. |
4. Současné využití
I když byla 2GL nahrazena vyššími jazyky (3GL), dodnes se používá v těchto oblastech:
- Embedded systémy: Programování mikrokontrolérů (pračky, automobily).
- Ovladače hardwaru: Tam, kde je vyžadována maximální rychlost a kontrola.
- Jádra operačních systémů: Kritické části systému, které komunikují s CPU.
- Reverzní inženýrství: Analýza malwaru nebo uzavřeného softwaru.
Související články:
Tagy: historie programming_languages 2GL assembly low-level
