Ključna razlika med izvornim programom in objektnim programom je, da je izvorni program človeku berljiv program, ki ga je napisal programer, medtem ko je objektni program strojno izvršljiv program, ustvarjen s prevajanjem izvornega programa.
Izvorne programe je mogoče prevesti ali interpretirati za izvajanje. Dekompilatorji pomagajo pretvoriti objektne programe nazaj v prvotne izvorne programe. Pomembno je omeniti, da se izraza izvorni program in objektni program uporabljata kot relativna izraza. Če vzamete program za pretvorbo programa (kot je prevajalnik), je tisto, kar vstopi, izvorni program, tisto, kar pride ven, pa objektni program. Zato lahko predmetni program, ki ga ustvari eno orodje, postane izvorna datoteka za drugo orodje.
Kaj je izvorni program?
Programer napiše izvorni program z uporabo jezika višje ravni. Zato ga ljudje zlahka berejo. Izvorni programi običajno vsebujejo smiselna imena spremenljivk in uporabne komentarje, da je bolj berljiv. Stroj ne more neposredno izvajati izvornega programa. Prevajalnik pomaga pretvoriti izvorni program v izvedljivo kodo, ki jo izvede stroj. Druga možnost je uporaba tolmača. Izvaja izvorni program vrstico za vrstico brez predprevajanja.
Slika 01: Izvorni program
Visual Basic je primer prevedenega jezika, medtem ko je Java primer interpretiranega jezika. Izvorne datoteke Visual Basic (datoteke.vb) so prevedene v kodo.exe, medtem ko so izvorne datoteke Java (datoteke.java) najprej prevedene (z ukazom javac) v bajtno kodo (objektna koda, ki jo vsebujejo datoteke.class) in nato interpretirane z uporabo tolmač java (z uporabo ukaza java). Ko se programske aplikacije distribuirajo, običajno ne vključujejo izvornih datotek. Če pa je aplikacija odprtokodna, je tudi izvorna koda distribuirana in uporabnik si lahko ogleda in spremeni tudi izvorno kodo.
Kaj je objektni program?
Objektni program je običajno strojno izvršljiva datoteka, ki je rezultat prevajanja izvorne datoteke s prevajalnikom. Poleg strojnih navodil lahko vključujejo informacije o odpravljanju napak, simbole, informacije o skladu, premestitvi in informacije o profiliranju. Ker vsebujejo navodila v strojni kodi, jih ljudje težko berejo. Toda včasih se objektni programi nanašajo na vmesni objekt med izvornimi in izvršljivimi datotekami.
Orodja, znana kot povezovalci, pomagajo povezati nabor predmetov v izvršljivo datoteko (npr. jezik C). Kot je omenjeno zgoraj, so datoteke.exe in datoteke z bajtno kodo objektne datoteke, ustvarjene pri uporabi Visual Basica oziroma Jave. Datoteke.exe se izvajajo neposredno na platformi Windows, medtem ko datoteke z bajtno kodo za izvajanje potrebujejo tolmača.
Večina programskih aplikacij se distribuira samo z objektnimi ali izvršljivimi datotekami. Objekt ali izvršljive datoteke je mogoče pretvoriti nazaj v izvirne izvorne datoteke z dekompilacijo. Na primer, orodja za dekompilacijo lahko dekompilirajo datoteke java.class (bytecode) v izvirne datoteke.java.
Kakšna je razlika med izvornim in objektnim programom?
Izvorni program je človeku berljiv program, ki ga je napisal programer. Napisan je v jezikih višje ravni, kot sta Java ali C. Zato je izvorni program človeku berljiv. Stroj tega ne razume.
Po drugi strani pa je objektni program strojno izvedljiv program, ustvarjen po prevajanju izvornega programa. Vsebuje jezike nižje ravni, kot je sestavljanje ali strojna koda. Zato objektni program ni berljiv za človeka. Stroju je razumljivo.
Povzetek – Izvorni program proti objektnemu programu
Razlika med izvornim in objektnim programom je v tem, da je izvorni program človeku berljiv program, ki ga je napisal programer, medtem ko je objektni program strojno izvedljiv program, ustvarjen s prevajanjem izvornega programa.