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:

1GL: Strojový kód

3GL: Vyšší programovací jazyky

Registry procesoru

Tagy: tag>historie programming_languages 2GL assembly low-level