Co jsou programovací jazykové generace?
Generování programovacích jazyků je způsob, jak klasifikovat počítačové programovací jazyky podle jejich celkové vzdálenosti od skutečného strojového kódu, který je generován, a v některých ohledech podle jejich snadnosti použití programátorem. Existují tři obecně přijímané generace programovacích jazyků a několik z nich, jejichž definice nejsou jasně dohodnuty. Počítačový programovací jazyk první generace je přímý strojový kód bez abstrakce. Jazyky druhé generace jsou abstrakce strojového kódu, jako je jazyk sestavení, který je vázán na specifickou architekturu systému, ale je čitelný pro člověka a musí být kompilován. Jazyky třetí generace jsou nejběžnější formou, včetně standardních jazyků, jako jsou C a Java®, zatímco jazyky čtvrté generace nebo vyšší mají různé definice.
Když byly programovací jazykové generace poprvé vytvořeny k popisu jazyků, byl tento termín většinou používán k označení jazyků třetí generace. To znamená, že jazyky první a druhé generace byly klasifikovány jako takové, aby se zdůraznily schopnosti jazyků třetí generace. Čtvrté a páté generace programovacích jazyků byly z velké části používány jako termíny ve vztahu k marketingu pro jazyky, které se vyvíjely. V marketingu a v některých akademických oblastech jsou jazykové generace s vyšším číslem používány nestandardním způsobem k označení, že jeden jazyk je novější nebo má více funkcí než jiný.
První z generací programovacího jazyka označuje strojový kód. To znamená psaní programu jako posloupnosti bajtů nebo, v extrémních případech, bitů, které mohou být přímo provedeny počítačem. Ve většině případů se jedná o systém, který přijímá vstup pomocí pevně kódovaných přepínačů nebo jiných fyzických mechanismů.
Programovací jazyky druhé generace jsou považovány za jazyky ve stylu sestavení. Jedná se o jazyky, které jsou psány s lidsky čitelným kódem a příkazy, které jsou stále spojeny se specifickými systémovými architekturami, ale představují jednodušší vývojové prostředí a určité abstrakce. Shromážděné jazyky se od roku 2011 nikdy nepřestávaly používat a jsou nejen extrémně výkonné, ale lze je také použít jako inline příkazy ve vyšších programovacích jazycích, což činí falešnou představu, že tvorba jazyka odpovídá jeho rychlosti nebo síle.
Programovací jazyky třetí generace oddělily kód od procesoru v ještě větší míře, což umožnilo vývoj kódu, který používal čitelnější příkazy. Kromě toho byly vyvinuty kompilátory, které by mohly změnit jediný řádek kódu na více příkazů sestavení na různých platformách a nakonec na desítky nebo více instrukcí strojového kódu. Téměř všechny počítačové jazyky, které umí kompilovat nativní binární spustitelné soubory a knihovny, jsou považovány za jazyky třetí generace.
Obecně je jazyk čtvrté generace považován za jazyk, který měl používat nějaký typ programovacího jazyka, který je pro uživatele velmi přirozený. Může být také definován jako jazyk, který používá vizuální prvky k vytvoření konečného programu. Třetí definicí je programovací jazyk, který je vytvořen pro konkrétní účel, jako je programovací jazyk databáze nebo jazyk pro rychlý vývoj aplikací (RAD).
Volná definice počítačového jazyka páté generace je taková, která umožňuje programátorovi představit počítač s problémem, který se pak pokusí vyřešit. Většina jazyků, které jsou uvedeny jako jazyk páté generace, má většinou akademický charakter. Další generace programovacích jazyků, jako je šestá a sedmá, byla vývojáři komerčních jazyků použita pro marketingové účely.