Programovací jazyk

Z předchozích dílů už víš, že nejdůležitější součást počítače je procesor který neustále přijímá instrukce, co má dělat. Instrukce v moderních procesorech má 64 bitů a ty už víš, že to je ve skutečnosti 64 nějakých obvodů, kterými putuje elektřina.

Takže co když chceš napsat nějaký program? Třeba počítačovou hru, nějakou svojí vlastní websajtu, eshop, nebo cokoliv jiného?

Teoreticky vzato můžeš bejt kokot, vzít si k ruce manuál konkrétní instrukční sady a svojí aplikaci napsat skrz jedničky a nuly do procesoru napřímo.

x86-64 má přes 2500 stránek, kompletní dokumentace k ARM64 dokonce přes 8000. Hodně štěstí!

Můj první 64-bitový program!
0001100000000000000000010000000000000000000000000000000000000000
0001000000000000000000000000000000000000100000000000000000000010
1100000000000000000000000000000000000000100000000000000000000010
….
Z tohohle se dřív nebo později zjebeš. To, že je něco teoreticky možné neznamená, že bys to měl dělat.

Jak se teda programuje? Jakým způsobem ajťáci píšou software?

No to je úplně jednoduchý. Místo toho, abys pracoval s jedničkama a nulama tak si vymyslíš nějaký „kód„, se kterým se pracuje jednoduššeji a který pak můžeš převést do instrukcí pro procesor.

Programovací jazyk není nic jiného, než pro člověka čitelnější instrukce pro procesor. Procesoru je to jedno, ten furt pracuje se 64 bity ale to je pro člověka s dnešní složitostí procesorů prakticky nereálné.

Kompilátor a strojový kód

Jakýkoliv programovací jazyk se píše jako lidsky čitelný text v nějakém kódu, který je mnohem přehlednější a srozumitelnější, než se orientovat v jedničkách a nulách.

Tento text ale sám o sobě nejsou instrukce pro procesor. Je to pouze text v nějaké znakové sadě.

Kompilátor (nebo compiler) je program, který převádí text do strojového kódu. Strojový kód je jen takovej chytřejší název pro instrukce pro procesor.

A to je vše. Tadá. Právě jsi se naučil podstatu programovacích jazyků. Není to nic jiného, než nějaký „kód“ který je pro člověka čitelnější než přímá práce s jedničkama a nulama. Tento kód se zapisuje jako text ale aby jej bylo možné spustit, je nutné tento text převést do strojového kódu skrz kompilátor.

Úžasná moderní grafika, jak se z programovacího jazyka stanou instrukce pro procesor.

Kompilátor je taky jenom program. Takže tě možná napadla vtipná otázka: kdo zkompiloval kompilátor?

K tomu mohlo dojít dvěma způsoby:

  • Kompilátor někdo napsal přímo ve strojovém kódu procesoru — ano, někdo se vyloženě sral s assemblerem (což je jen o chlup přehlednější zápis místo nul a jedniček) aby tento jazyk zkompiloval, aspoň v základní verzi. Jakmile měl kompilátor hotový tak už měl možnost napsat nový, rozšířenější kompilátor v tomto jazyce. Tomuto procesu se říká bootstrapping.
  • Kompilátor se napsal v jiném programovacím jazyce.

Jeden z prvních kompilátorů vznikl v roce 1957 a psal se 18 let!

Shrnutí

  • Programovací jazyk je kód, který umožňuje lidštější psaní softwaru jako textu
  • Kompilátor (compiler) je program, který převede kód napsaný programovacím jazykem do strojového kódu
  • Strojový kód je název pro spustitelný program což je jen sada instrukcí pro procesor
  • Bootstrapping je jeden ze způsobů, jakým vznikají nové programovací jazyky. Nejdřív se napíše kompilátor v instrukcích pro procesor pro velmi základní prvky programovacího jazyka a pak se díky tomuto kompilátoru, už v daném jazyce, napíše rozšířenější kompilátor.