Jednou z posledních fází vývoje Softwarového produktu je vytvoření objektového kódu. Objektový kód je strojový kód, který rozumí procesoru a plní pokyny programu. Je výsledkem kompilace zdrojového kódu v programovacím jazyce.
Vytvoření objektového kódu probíhá ve fázi kompilace. Kompilátor převede zdrojový kód programu napsaný v programovacím jazyce na strojový kód, který bude možné provést procesorem. V důsledku kompilace získáme spustitelný soubor obsahující objektový kód. Takový soubor lze spustit na počítači nebo jiném zařízení a spustit program.
Objektový kód je obvykle uložen v souboru s příponou .obj nebo .o.představuje sekvenci instrukcí, jako jsou aritmetické operace, podmíněné přechody, volání funkcí a další. Každá instrukce je reprezentována číslem nebo sadou čísel, která udávají určité akce procesoru. Při provádění programu procesor postupně provádí tyto pokyny, zpracovává data a pohybuje se v paměti.
Při vytváření objektového kódu je důležitou fází optimalizace. Optimalizace má za cíl zlepšit výkon programu odstraněním nepoužívaného kódu, snížením počtu operací, optimalizací využití zdrojů a dalšími opatřeními, která mohou program zefektivnit.
Objektový kód je vytvořen pro konkrétní hardwarovou architekturu, takže spustitelné soubory obsahující objektový kód lze provést pouze na vhodné platformě: počítači s konkrétním procesorem a operačním systémem. Objektový kód lze tedy přenést na jinou platformu pouze pomocí překompilace zdrojového kódu do nového prostředí výkonu, což může trvat značnou dobu a vyžadovat další úsilí vývojářů.
Architektura počítače a proces vytváření objektového kódu programu
Proces vytváření objektového kódu programu zahrnuje několik fází. V první fázi dochází k návrhu programu, kde jsou definovány požadavky a úkoly, které musí program splnit. Programátor pak píše kód v programovacím jazyce pomocí speciálních nástrojů, jako jsou textové editory nebo integrovaná vývojová prostředí.
Po napsání kódu dojde k jeho kompilaci nebo interpretaci. V případě kompilace je zdrojový kód programu převeden do objektového kódu kompilátorem. Kompilátor analyzuje kód a vytváří optimalizovanou sadu strojových instrukcí, kterou lze provést na konkrétní architektuře počítače. V případě interpretace je zdrojový kód programu interpretován po řádcích a provádí se přímo na spustitelném systému.
Když je vytvořen objektový kód, lze jej spustit v počítači. Je načten do paměti RAM počítače a předán procesoru k provedení. Procesor interpretuje každou instrukci objektového kódu a provádí příslušné operace. Výsledky programu lze uložit, zobrazit na obrazovce nebo použít k interakci s jinými programy nebo železnými součástmi počítače.
Kompilace a interpretace
Během procesu vytváření programu se obvykle zapisuje v textové podobě v programovacím jazyce. K provedení programu však počítač potřebuje převést na strojový kód, který lze přímo spustit procesorem.
K tomu se používají dva základní přístupy: kompilace a interpretace.
Kompilace - je to proces převodu zdrojového kódu programu na objektový kód, který lze provést na cílové platformě. Kompilátor analyzuje zdrojový kód a vytvoří spustitelný soubor nebo knihovnu. Tento soubor obsahuje strojový kód, který lze přímo interpretovat procesorem počítače. V důsledku kompilace se vytvoří objektový kód programu.
Interpretace - je to proces provádění programu v jednom z programovacích jazyků, který se nazývá interpret. Na rozdíl od kompilace, kde je zdrojový kód předem převeden na strojový kód, interpretace provádí příkazy programu, jak přicházejí interpretovi. V tomto případě není objektový kód vytvořen předem, ale vypočítán za běhu během provádění programu.
Každý z přístupů má své výhody a nevýhody. Kompilace vám umožňuje získat efektivnější kód, který je rychlejší, ale před spuštěním programu vyžaduje předběžnou kompilaci. Interpretace může být pohodlnější a flexibilnější, protože umožňuje měnit kód programu během jeho provádění, ale může běžet pomaleji, protože každý pokyn je interpretován jednotlivě.
Volba mezi kompilací a interpretací závisí na požadavcích programu a konkrétních situacích.
Kompilátory a jejich role při vytváření objektového kódu
Kompilace je proces převodu zdrojového kódu programu na vysoké úrovni (např. C++, Java, Python) na strojový kód, který může počítač provést. Kompilátory přijmou zdrojový kód programu a převedou jej na objektový kód, který pak lze spustit na cílové hardwarové platformě.
Role kompilátoru spočívá v následujících fázích vytváření objektového kódu:
- Analýza zdrojového kódu: kompilátor čte a analyzuje zdrojový kód programu, kontroluje jej na syntaktickou a sémantickou korektnost.
- Optimalizace: kompilátor provádí různé optimalizace a konverze kódu, aby zlepšil výkon a efektivitu programu.
- Generování objektového kódu: kompilátor vytváří objektový kód na základě analýzy a optimalizace zdrojového kódu. Objektový kód obsahuje strojové pokyny a data potřebná k provádění programu na cílové platformě.
Výsledný objektový kód může být dále zpracován, jako je rozvržení (linker), aby se vytvořil spustitelný soubor programu nebo knihovna.
Je důležité poznamenat, že různé programovací jazyky mohou používat různé kompilátory. Některé jazyky mohou být interpretovatelné a nevyžadují kompilaci, místo toho se používá interpret, který provádí zdrojový kód po řadě.
Schopnost používat kompilátory a porozumět jejich roli při vytváření objektového kódu jsou pro vývojáře softwaru důležité dovednosti.
Programovací jazyky a vytváření objektového kódu
Když programátor vytvoří program, napíše kód v programovacím jazyce na vysoké úrovni, který je pro lidi snazší pochopit, ale nelze jej provést počítačem. Tento kód se nazývá zdrojový kód.
Aby mohl být zdrojový kód proveden, musí být zkompilován nebo interpretován. Při kompilaci zdrojového kódu se vytvoří objektový kód, který může počítač provést.
Objektový kód je sada instrukcí ve strojových kódech, kterým rozumí procesor počítače. Je výsledkem procesu kompilace a obsahuje pokyny, které se provádějí na cílovém hardwaru.
Kompilace je proces převodu zdrojového kódu v programovacím jazyce na objektový kód. Kompilátory jsou programy, které provádějí kompilaci zdrojového kódu. Analyzují syntaxi a sémantiku kódu a vytvářejí odpovídající objektový kód.
Interpretace je alternativní způsob provádění programu, při kterém interpret po vzoru provádí zdrojový kód. Analyzuje a provádí každou instrukci, jak program zpracovává.
Některé programovací jazyky, jako je C A C++, se používají k psaní kódu, který je kompilován a vytváří objektový soubor. Jiné programovací jazyky, jako je JavaScript a Python, jsou interpretovány a nevyžadují explicitní kompilaci k vytvoření objektového kódu.
Vytvoření objektového kódu programu tedy závisí na zvoleném programovacím jazyce a použitém přístupu k provádění kódu - kompilace nebo interpretace.
Virtuální stroje a převod zdrojového kódu na objektový kód
Když napíšete program do jednoho z programovacích jazyků, váš zdrojový kód nelze provést přímo počítačem. Místo toho musí být převeden na strojový kód, kterému rozumí procesor počítače. Tento proces převodu zdrojového kódu na objektový kód provádějí virtuální stroje.
Virtuální stroj je software, který simuluje fungování skutečného počítače. Interpretuje nebo kompiluje zdrojový kód programu do strojového kódu, který může být spuštěn na konkrétní architektuře procesoru. Virtuální stroje se používají pro různé programovací jazyky, jako je Java, C#, Python a mnoho dalších.
Proces převodu zdrojového kódu na objektový kód lze provést různými způsoby, v závislosti na vybraném virtuálním počítači a programovacím jazyce.
V některých případech může být zdrojový kód interpretován, to znamená, že je analyzován a prováděn po řádku. Jindy lze zdrojový kód zkompilovat do mezilehlého kódu, který pak provede virtuální stroj.
Java Virtual Machine (JVM) je jedním ze známých a široce používaných virtuálních strojů. Zkompiluje zdrojový kód Java do mezilehlého bajtového kódu, který lze spustit na jakékoli platformě, kde je nainstalován JVM. Díky tomu je Java multiplatformním programovacím jazykem.
Dalším příkladem virtuálního stroje je Common Language Runtime (CLR) používaný v programovacím jazyce C#. Převádí také zdrojový kód C# na mezilehlý bajtový kód, který lze spustit na jakékoli platformě, kde je CLR nainstalován.
Objektový kód programu je tedy vytvořen virtuálními stroji převodem zdrojového kódu na strojový kód, který lze spustit na konkrétní platformě. Použití virtuálních strojů umožňuje programátorům vyvíjet programy nezávislé na konkrétní architektuře procesoru.