it:lang:2gl
Obsah
Druhá generace jazyků (2GL)
2GL (Second-Generation Programming Languages) představuje evoluční krok od čistě binárního kódování k symbolickému zápisu. Hlavním představitelem této generace je Assembler (jazyk symbolických adres).
1. Charakteristika 2GL
Zatímco první generace (1GL) vyžadovala psaní instrukcí přímo v binární soustavě (nuly a jedničky), 2GL zavedla tzv. mnemotechnické pomůcky (mnemonics). Jsou to krátká klíčová slova, která zastupují konkrétní instrukce procesoru.
- Závislost na hardwaru: Jazyky 2GL jsou úzce spjaty s konkrétní architekturou procesoru (např. x86, ARM, MIPS). Program napsaný pro jeden typ procesoru nebude fungovat na jiném.
- Přímá správa paměti: Programátor má absolutní kontrolu nad registry procesoru a adresami v paměti RAM.
- Nutnost překladu: Kód napsaný v 2GL musí být přeložen do strojového kódu (1GL) pomocí nástroje zvaného Assembler.
—
2. Struktura kódu v Assembleru
Typický příkaz v 2GL se skládá z operace a operandů.
| Mnemonika | Význam | Příklad |
|---|---|---|
| MOV | Move (přesun dat) | MOV AL, 61h (ulož hodnotu 97 do registru AL) |
| ADD | Add (sčítání) | ADD EAX, EBX (sečti hodnoty ve dvou registrech) |
| PUSH / POP | Práce se zásobníkem | PUSH EAX (vlož hodnotu na zásobník) |
| JMP | Jump (skok) | JMP label (přejdi na jinou část kódu) |
—
3. Výhody a nevýhody
| Výhody | Nevýhody |
|---|---|
| Extrémní rychlost: Kód je stejně rychlý jako strojový kód. | Nízká čitelnost: Kód je pro člověka velmi nepřehledný. |
| Minimální nároky: Programy zabírají velmi málo místa v paměti. | Složitý vývoj: I jednoduché operace vyžadují desítky řádků kódu. |
| Přímý přístup k HW: Ideální pro ovladače a vestavěné systémy. | Nepřenositelnost: Kód je vázán na konkrétní čip. |
—
4. Kde se 2GL používá dnes?
I když byla 2GL v běžném vývoji nahrazena jazyky vyšších úrovní (jako C, C++ nebo Python), stále má své nezastupitelné místo:
- Firmware a BIOS: Základní software, který startuje hardware.
- Ovladače zařízení (Drivers): Kde je vyžadována maximální rychlost a přímá komunikace s HW.
- Kritické sekce operačních systémů: Části jádra (kernelu), které musí být vysoce optimalizované.
- Reverzní inženýrství: Analýza malwaru a hledání bezpečnostních děr.
—
5. Porovnání: 1GL vs 2GL vs 3GL
- 1GL (Strojový kód):
10110000 01100001(naprosto nečitelné) - 2GL (Assembler):
MOV AL, 61h(symbolické vyjádření téhož) - 3GL (C/Java/Python):
x = 97;(vysoká abstrakce, lidská logika)
Související články:
Tagy: dev programming assembler low-level 2gl history hardware
it/lang/2gl.txt · Poslední úprava: autor: admin
