Kľúčový rozdiel medzi zdrojovým programom a objektovým programom je v tom, že zdrojový program je človeku čitateľný program napísaný programátorom, zatiaľ čo objektový program je strojom spustiteľný program vytvorený kompiláciou zdrojového programu.
Zdrojové programy možno skompilovať alebo interpretovať na vykonanie. Dekompilátory pomáhajú konvertovať objektové programy späť na ich pôvodné zdrojové programy. Je dôležité poznamenať, že pojmy zdrojový program a objektový program sa používajú ako relatívne pojmy. Ak si vezmete program transformácie programu (napríklad kompilátor), to, čo vstúpi, je zdrojový program a to, čo vyjde, je objektový program. Preto sa objektový program vytvorený jedným nástrojom môže stať zdrojovým súborom pre iný nástroj.
Čo je zdrojový program?
Programátor napíše zdrojový program pomocou jazyka vyššej úrovne. Preto je pre ľudí ľahko čitateľný. Zdrojové programy zvyčajne obsahujú zmysluplné názvy premenných a užitočné komentáre, aby boli čitateľnejšie. Stroj nemôže priamo spustiť zdrojový program. Kompilátor pomáha transformovať zdrojový program na spustiteľný kód, ktorý stroj spustí. Prípadne je použiť tlmočníka. Spustí zdrojový program riadok po riadku bez predkompilácie.
Obrázok 01: Zdrojový program
Visual Basic je príkladom kompilovaného jazyka, zatiaľ čo Java je príkladom interpretovaného jazyka. Zdrojové súbory Visual Basic (súbory.vb) sa skompilujú do kódu.exe, zatiaľ čo zdrojové súbory Java (súbory.java) sa najprv skompilujú (pomocou príkazu javac) do bajtkódu (objektový kód obsiahnutý v súboroch.class) a potom sa interpretujú pomocou interpret java (pomocou príkazu java). Keď sú softvérové aplikácie distribuované, zvyčajne nebudú obsahovať zdrojové súbory. Ak je však aplikácia open source, zdroj je tiež distribuovaný a používateľ môže vidieť a upravovať aj zdrojový kód.
Čo je objektový program?
Objektový program je zvyčajne strojom spustiteľný súbor, ktorý je výsledkom kompilácie zdrojového súboru pomocou kompilátora. Okrem strojových inštrukcií môžu obsahovať informácie o ladení, symboly, informácie o zásobníku, premiestnení a informácie o profilovaní. Keďže obsahujú inštrukcie v strojovom kóde, nie sú pre ľudí ľahko čitateľné. Niekedy však objektové programy odkazujú na prechodný objekt medzi zdrojovými a spustiteľnými súbormi.
Nástroje známe ako linkery pomáhajú prepojiť množinu objektov do spustiteľného súboru (napr. jazyk C). Ako je uvedené vyššie, súbory.exe a súbory s bajtovým kódom sú objektové súbory vytvorené pri použití jazyka Visual Basic a Java. Súbory.exe sa spúšťajú priamo na platforme Windows, zatiaľ čo súbory bajtového kódu potrebujú na spustenie tlmočníka.
Väčšina softvérových aplikácií sa distribuuje iba s objektom alebo spustiteľnými súbormi. Dekompiláciou je možné konvertovať objekt alebo spustiteľné súbory späť na pôvodné zdrojové súbory. Napríklad dekompilačné nástroje môžu dekompilovať súbory java.class (bytecode) na pôvodné súbory.java.
Aký je rozdiel medzi zdrojovým programom a objektovým programom?
Zdrojový program je ľudsky čitateľný program napísaný programátorom. Je napísaný v jazykoch vyššej úrovne, ako je Java alebo C. Preto je zdrojový program čitateľný človekom. Nie je to pre stroj pochopiteľné.
Na druhej strane, Object program je strojom spustiteľný program vytvorený po kompilácii zdrojového programu. Obsahuje jazyky nižšej úrovne, ako je assembler alebo strojový kód. Preto objektový program nie je čitateľný pre človeka. Je to pochopiteľné pre stroj.
Zhrnutie – zdrojový program verzus objektový program
Rozdiel medzi zdrojovým programom a objektovým programom je v tom, že zdrojový program je človekom čitateľný program napísaný programátorom, zatiaľ čo objektový program je strojovo spustiteľný program vytvorený kompiláciou zdrojového programu.