Ключовата разлика между изходната програма и обектната програма е, че изходната програма е четима от човека програма, написана от програмист, докато обектната програма е машинно изпълнима програма, създадена чрез компилиране на изходна програма.
Изходните програми могат да бъдат или компилирани, или интерпретирани за изпълнение. Декомпилаторите помагат за преобразуването на обектни програми обратно в оригиналните изходни програми. Важно е да се отбележи, че термините изходна програма и обектна програма се използват като относителни термини. Ако вземете програма за трансформиране на програма (като компилатор), това, което влиза, е изходна програма, а това, което излиза, е обектна програма. Следователно обектна програма, създадена от един инструмент, може да стане изходен файл за друг инструмент.
Какво е програма източник?
Програмистът пише изходната програма, използвайки език от по-високо ниво. Поради това е лесен за четене от хората. Изходните програми обикновено съдържат смислени имена на променливи и полезни коментари, за да ги направят по-четими. Една машина не може директно да изпълни изходна програма. Компилаторът помага да се трансформира изходната програма в изпълним код, който да се изпълнява от машината. Като алтернатива е да използвате преводач. Той изпълнява изходна програма ред по ред без предварителна компилация.
Фигура 01: Изходна програма
Visual Basic е пример за компилиран език, докато Java е пример за интерпретиран език. Изходните файлове на Visual Basic (.vb файлове) се компилират в.exe код, докато Java изходните файлове (.java файлове) първо се компилират (чрез команда javac) в байт код (обектен код, съдържащ се в.class файлове) и след това се интерпретират с помощта на java интерпретатор (с помощта на java команда). Когато се разпространяват софтуерни приложения, те обикновено няма да включват изходни файлове. Въпреки това, ако приложението е с отворен код, източникът също се разпространява и потребителят също може да види и модифицира изходния код.
Какво е обектна програма?
Обектната програма обикновено е машинно изпълним файл, който е резултат от компилиране на изходен файл с помощта на компилатор. Освен машинни инструкции, те могат да включват информация за отстраняване на грешки, символи, информация за стека, преместване и информация за профилиране. Тъй като съдържат инструкции в машинен код, те не се четат лесно от хората. Но понякога обектните програми се отнасят до междинен обект между изходните и изпълнимите файлове.
Инструментите, известни като линкери, помагат за свързване на набор от обекти в изпълним файл (напр. език C). Както бе споменато по-горе,.exe файловете и файловете с байт код са обектни файлове, произведени при използване съответно на Visual Basic и Java. Файловете.exe се изпълняват директно на платформа на Windows, докато файловете с байт код се нуждаят от интерпретатор за изпълнение.
Повечето софтуерни приложения се разпространяват само с обектни или изпълними файлове. Възможно е обектът или изпълнимите файлове да се преобразуват обратно в оригиналните изходни файлове чрез декомпилация. Например инструментите за декомпилиране могат да декомпилират файловете java.class (байткод) в техните оригинални.java файлове.
Каква е разликата между изходна програма и обектна програма?
Изходната програма е програма, която може да се чете от хора, написана от програмист. Написана е на езици от по-високо ниво като Java или C. Следователно програмата изходен код е четима от хора. Не се разбира от машината.
От друга страна, програмата Object е машинно изпълнима програма, създадена след компилиране на изходна програма. Той съдържа езици от по-ниско ниво като асемблер или машинен код. Следователно обектната програма не е четлива от човека. Разбираемо е от машината.
Резюме – програма източник срещу програма обект
Разликата между изходната програма и обектната програма е, че изходната програма е четима от човека програма, написана от програмист, докато обектната програма е машинно изпълнима програма, създадена чрез компилиране на изходна програма.