Изходен код
Изходен код може да се нарече начина на записване на определена програма, действие, команда, посредством определени за целта символи.
Същност
Програмите се пишат на езици за програмиране. Съществуват различни видове езици за програмиране, които решават различни типове задачи. Една програма представлява обикновен текст, написан на текстов редактор. Обикновено командите са на английски език и са интуитивни. Това се нарича изходен код на програмата. Т.е. изходният код се разчита лесно от човек. За съжаление, компютърът не разбира изходния код на програмата. Той трябва да бъде транслиран (преведен) до команди, които се разбират от компютъра. В резултат на превеждането (транслирането) се получава машинен код, който представлява поредици от нули и единици, които се изпълняват от компютъра. Машинният код практически е нечитаем от човек и може да се изпълнява само на платформата, за която е преведен (компилиран (Транслаторите се делят на два вида: интерпретатори и компилатори. Интерпретаторите четат изходния код и изпълняват (превеждат) командите на машинен код една по една по време на изпълнението на програмата. Компилаторите генерират (превеждат) цялата програма на машинен код предварително. След това програмата може да се изпълнява самостоятелно без наличието на компилатор. Това деление не е много точно, понеже напоследък навлязоха нови концепции, като псевдо-компилатор и виртуална машина. Но целта на статията не е да разглежда различните видове транслатори и да прави сравнение между тях.) ).
Пример
Нека да разгледаме един пример, с който да илюстрираме разликата между изходния код и машинния код. Примерите са реализирани с помощта на езика Паскал (Езикът за програмиране Паскал бе избран пред другите езици, поради факта, че се изучава(ше) в почти всички училища и университети, лесен е за разчитане и е идеален за обучение, въпреки че няма толкова голямо практическо приложение като Джава или С/С++.). Компилаторът, който е използван, е със свободен изходен код и може да бъде изтеглен безплатно от тук. Всъщност, цялата статия е реализирана изцяло с използването на свободен софтуер.
Въпросният пример представлява калкулатор. Програмата изисква въвеждането на две числа и операция. След това операцията се извършва върху числата и резултатът се извежда на екрана. За момента се поддържат операциите събиране, изваждане, умножение и деление, което е напълно достатъчно за демонстрационни нужди.
Както виждате, изходният код на програмата е разбираем (разбира се, читателят трябва да има известни познания по английски език). За да преведем изходния код на машинен код, използваме командата fpc calculator.pp, която се явява компилатор на езика Паскал. Ето и самата сесия:
В резултат се получава изпълнимият файл calculator. Терминологията варира леко и може да срещнете други наименования, като двоичен файл (Текстов файл и двоичен файл е двойка термини, подобна на изходен код и машинен код. Смисълът е пак същия. Текстовият файл може да се чете от човек директно, докато двоичният файл не може.), машинен файл или най-използваното наименование програма. Ето част от съдържанието на изпълнимия файл или т.н. машинен код:
Нека да изпълним програмата, за да видим дали работи. Ето няколко изпълнения на програмата:
Програмата работи за тестваните случаи на умножение и деление, и показва резултата с точност до петия знак след десетичната запетая. Липсва операцията по степенуване и при деление на нула програмата се чупи, вместо да покаже съобщение за грешка.
Очевидно, ако разполагаме само с машинния код на програмата, няма как да я оправим. Но ако разполагаме с изходния код на програмата, може сравнително лесно да добавим операцията по степенуване и да направим съответната проверка за грешка. Ето модифицираната част на новата програма:
След като компилираме програмата, изпълняваме я отново, за да видим дали работи. Ето няколко нови примера от изпълнението на програмата:
Както се вижда от изложените примери, ако имаме изходния код на една програма и разбираме от програмиране, може сравнително лесно да оправим грешки и/или да добавим нова функционалност. При липсата на изходния код на програмата, очевидно, това е невъзможно.
Терминология в текста
- [1]
- [2]
- [3]




