Направо към съдържанието

Изходен код

от Уикипедия, свободната енциклопедия
(пренасочване от Сорс код)
Илюстрация на Java сорс код с коментари в началото на кода оцветени в червено, вмъкнати коментари в зелено и програмни инструкции в синьо

Изходният код (на английски: source code) е сбор от инструкции (заедно с коментарите), написан на разбираем за човека език за програмиране (може и на повече от един език за програмиране) обикновено като текст. Изходният код позволява модификация на компютърната програма, разглеждане на начина, по който тя работи, откриване на грешки и други действия. Той трябва да се компилира, за да се получи програма на машинен език, която може да се изпълнява от хардуера. Друг вариант е да се ползва интерпретатор, който да анализира и да изпълни кода на момента.

Повечето компютърни програми не се разпространяват с техния изходен код, а във вид на изпълними файлове. Ако кодът е включен, той е полезен за потребителя, програмиста или системния администратор, за да разбере действието му, или за да го промени или допълни.

На руски език терминът е исхо̀дный код. Според руско-българския речник[1] думата исхо̀дный означава ѝзходен, нача̀лен, отпра̀вен.

В израза исхо̀дный код правилният превод на думата исхо̀дный е начален, от източника, което разбира се точно съответства на английския оригинал. А българското „изходен“ (в първо значение – антоним на „входен“), се превежда на руски като выходной (антоним на „входной“), а на английски като exit (антоним на „entry, entrance“).

Думите исхо̀дный и изходен са пример за фалшиви приятели, тъй като невинаги имат еднакво значение (в руския език думата исхо̀дный не се използва за неща, които служат за изход, въпреки че в българския език второто значение на думата изходен съвпада с това на исхо̀дный).

  • програмен код
  • изходен код
  • код източник
  • сорс код (на английски: source code)
  • сорс
  • първичен код

Сорс кодът, който съставлява програмата, обикновено се съдържа в един или повече текстови файлове, съхранявани в хард диска на компютъра. Обикновено тези файлове са внимателно подредени в дървовидна структура от директории, позната и като структура от сорс. Сорс кодът може също да бъде запазван в бази данни (както е прието за съхранените процедури) или на друго място.

Сорс кодът за определена част от софтуера може да се състои от един или няколко файла. Въпреки че следващият метод не се използва често, сорс кодът може да бъде записан на различни езици за програмиране. Например програма, написана в C може да има части, написани на асемблер за оптимизационни цели. Също така е възможно за някои компоненти на части от софтуера да са написани и компилирани отделно, в условен програмен език и по-късно да бъдат интегрирани в софтуер, използвайки технология, наречена рефериране. Така се процедира при някои езици например Java: всеки клас се компилира отделно във файл и се свързва с интерпретатора по време на изпълнението.

Друг метод е да се направи главната програма, интерпретираща за програмния език или специално за приложението във въпроса, след което да се състави тялото на потребителската функционалност като макрос, или като допълнителна библиотека на езика.

Кодовата база на даден проект е по-голямата колекция от всички сорс кодове на всички компютърни програми, които образуват проекта. Все по-често използвана практика е кодовете да се поддържат в системи за контрол на версиите.

Изходният код главно се използва като начален процес, при които се създава стартираща програма (компилирана или интерпретирана).

Програмистите, често намират за полезно да изследват съществуващ код, за да научат техники за програмиране. Споделянето на код между разработчици често се отбелязва като основен белег, необходим за развиването на уменията за програмиране. [2] Някои хора смятат изходния код като среда за художествено изразяване.[3]

Прехвърлянето на софтуер на други компютърни платформи, обикновено е много трудно без изходния код и може да изисква много ресурси. Възможността за прехвърляне включва двоично превеждане или емулация на оригиналната платформа.

Декомпилация на изпълним файл може да се използва за получаване на изпълним код или в програмен код от ниско ниво или от език на високо ниво.

Програмистите често адаптират програмния код от един софтуерен продукт, така че да може да се използва и в други проекти, този похват се нарича софтуерно преизползване.

Софтуерът и придружаващият го програмен код, принадлежи към една от две групи по отношение на интелектуалната собственост: свободен софтуер и патентован софтуер.

Общо казано, софтуерът е свободен ако програмният код е свободен за употреба, разпространение, извършване на промени и изучаване и патентен, ако програмния код се пази в тайна или е частна собственост и ограничен. Забележете, че под „свободен“ се разбира свобода, а не безплатен. При много лицензи е приемливо да се плаща за „свободен софтуер“. Първият публикуван лиценз за свободен софтуер, който дава тези права за свобода, е GNU General Public License през 1989. GNU GPL първоначално е насочен да бъде използван с GNU операционна система. По-късно GNU GPL е адаптиран и от други не-GNU софтуерни проекти, например Линукс ядрото.

За патентования софтуер важат различни закони за защита на авторското право, търговската тайна и патентите, за да бъде запазен програмния код. Допълнително болшинството софтуер е придружен със споразумение за крайния потребител (EULA), което обикновено изрично забранява декомпилацията, обратното инженерстви, анализа, модифицирането или заобикалянето на защитата от копиране. Видовете защита на програмния код, освен традиционното компилиране до обектен код, включва засекретяване, маскиране или морфиране на кода.

Обратно инженерство

[редактиране | редактиране на кода]

Обратното инженерство (на английски: reverse engineering) представлява процес на генериране на изходен код на програма от нейния машинен код. Това е сложен и понякога забранен от автора на програмата процес. Обикновено полученият по този начин изходен код е неразбираем за човек.

Следващите редове представляват програмен код на езика C# за събиране на две цели числа. След компилиране, се създава изпълним файл, от който се стартира програмата.

using System;
class SumofTwoIntegerNumbers // дефинира клас SumofTwoIntegerNumbers
{
 static void Main() // дефинира метода Main
 { // следва съдържанието на Main()
 int a = 5; // декларира променливата ''а'' от целочислен тип и присвоя стойност равна на 5
 int b = 6; // декларира променливата ''b'' от целочислен тип и присвоя стойност равна на 6
 int sum = a + b; // декларира променливата ''sum'' от целочислен тип и присвоя стойност равна на сбора от ''a'' и ''b''
 Console.WriteLine("Сумата на двете числа е: " + sum); // извежда на екрана стойността на ''sum''
 }
}

Същият код може да бъде написан така че да бъде изпълнен от интерпретатор, като например bash. Тук командния интерпретатор чете кода ред по ред и не е необходима компилация, като изходът се визуализира веднага след последната команда. Кодът може да бъде изпълнен, като всяка стъпка се въвежда последователно в терминала bash.

#!/bin/bash
# задава стойности на ''a'' и ''b''
let a=4
let b=5
# присвоява сумата на ''a'' и ''b'' на ''c''
let c=$a+$b
# извежда резултата на екрана
echo $c
  1. С. К. Чукалов. Русско-болгарский словарь, изд. Русский язык, 1986
  2. Spinellis, D: Code Reading: The Open Source Perspective. Addison-Wesley Professional, 2003. ISBN 0-201-79940-5
  3. Art and Computer ProgrammingONLamp.com Архив на оригинала от 2018-02-20 в Wayback Machine., (2005)