Изходен код: Разлика между версии

Изтрито е съдържание Добавено е съдържание
Dimitartdrv (беседа | приноси)
Редакция без резюме
дребни: правопис, оформление; форматиране: 4x интервали, 2x А|АБ (ползвайки Advisor.js)
Ред 1:
[[Image:CodeCmmt002.svg|thumb|right|300px| Илюстрация на [[Java]] сорс код с коментари в началото на кода оцветени в червено, вмъкнати коментари в зелено и програмни инструкции в синьо]]
'''Изходният код''' ({{lang-en|Source code}}) е сбор от иструкции (заедно с коментарите) написан на разбираем за човека [[език за програмиране]] (може и на повече от един език за програмиране) обикновено като [[текст]]. Изходният код на [[компютърна програма|компютърната програма]] трябва да се [[Компилатор|компилира]], за да се получи програма на [[машинен език]], която може да се изпълнява от [[хардуер]]а. Друг вариант е да се ползва [[Команден интерпретатор|интерпретарор]], който да анализира и да изпълни кода на момента.
 
Повечето компютърни програми се разпространяват във вид на [[Изпълним файл|изпълними файлове]], но не и техния изходен код. Ако кодът е включен, то е полезно за потребителят, програмиста или системния администратор, за да се разбере действието, или за да се промени или допълни успешно дадена програма.
Ред 8:
* изходен код
* код източник
* сорс код (от [[английски език{{lang-en|англ.]] ''source code''}})
* сорс
* първичен код
Ред 18:
Сорс кодът, който съставлява [[Компютърна_програма|програмата]] обикновено е качен на един или повече текстови файла, съхранявани в [[Твърд_диск|хард диска]] на компютъра. Обикновено тези файлове са внимателно подредени в дървовидна структура от директории, позната и като структура от сорс. Сорс кодът може също да бъде съхраняван в бази данни (както е прието за стор процедурите) или на друго място.
 
Сорс кодът за определена част от софтуера може да се съдържа в един или в няколко файла. Въпреки че следващия метод не се използва често, сорс кода може да бъде записан в различни езици за програмиране. Например програма, написана в [[C_C (език_за_програмиране)|C]] може да има части, написани на [[Асемблер|асемблер]] за оптимизационни цели. Също така е възможно за някои компоненти на части от софтуера да са написани и комплирани отделно, в условен програмен език и по-късно да бъдат интегрирани в софтуер, използвайки технология, наречена рефериране. Така се процедира при някои езици например ДжаваJava: всеки клас се компилира отделно във файл и се свързва с интерпретатора по време на изпълнението.
 
Друг метод е да се направи главната програма интерпретираща за програмния език или специално за приложението във въпроса, след което да се състави тялото на потребителската функционалност като макрос, или като допълнителна библиотека на езика.
Ред 25:
 
== Цел ==
Изходният код главно се използва като начален процес, при които се създава стартираща програма ([[Компилатор|компилирана]] или [[Команден интерпретатор|интерпретирана]]).
 
[[Програмист|Програмистите]]ите, често намират за полезно да изследват съществуващ код, за да научат техники за програмиране. Споделянето на код между разработчици, често се отбелязва като основен белег необходим за развиването на уменията за програмиране. <ref name=Spinellis>Spinellis, D: ''Code Reading: The Open Source Perspective''. Addison-Wesley Professional, 2003. ISBN 0-201-79940-5</ref> Някои хора смятат изходния код като среда за художествено изразяване.<ref>"''Art and Computer Programming''" [http://www.onlamp.com/pub/a/onlamp/2005/06/30/artofprog.html ONLamp.com], (2005)</ref>
 
Прехвърлянето на софтуер на други [[Компютърна платформа|компютърни платформи]], обикновено е много трудно без изходния код. Без изходен код прехвърлянето на софтуера може да изисква много ресурси. Възможността за прехвърляне включва [[двуичнодвоично превеждане]] или емулация на оригиналната платформа.
 
Декомпилация на изпълним файл може да се използва за получаване на изпълним код или във програмен код от ниско ниво или от [[език на високо ниво]].
Ред 38:
Софтуерът и придружаващият го програмен код, принадлежи към една от две лицензни групи: [[свободен софтуер]] и [[патентован софтуер]].
 
Общо казано, софтуерът е ''свободен'' ако програмният код е сводобенсвободен за употреба, разпространение, извършване на промени и изучаване и ''патентен'', ако програмния код се пази в тайна или е частна собственост и ограничен. Забележете, че под „свободен” се разбира свобода, а не безплатен. При много лицензи е приемливо да бъде плащано за „свободен софтуер”. Първият лиценз за свободен софтуер, който е публикуван за да дава тези права за свобода е [[GNU General Public License]] през 1989. GNU GPL е бил първоначално насочен да бъде използван с [[ГНУ|GNU операционна система]]. По-късно GNU GPL е бил адаптиран и от други не-GNU софтуерни проекти като например [[Линукс (ядро)|Линукс ядрото]].
 
За патентования софтуер, се осигуряват различни закони за [[Авторско право|защитата на авторското право]], [[търговската тайна]] и [[патент|патенти]]и, за да бъде запазен програмния код затворен. Допълнително много от софтуера идва със споразумение за крайния потребител ([[EULA]]) което обикновено забранява [[Декомпилатор|декомпилацията]], [[обратното инженерство]], анализа, модифицирането или заобикалянето на защитата от копиране. Видовете защита на програмния код, освен традиционното компилиране до обектен код, включва засектретяванезасекретяване на кода, [[маскиране на кода]] или [[морфиране на кода]].
 
== Обратно инженерство ==
{{основна|Обратно инженерство}}
Обратното инженерство (на англ. ''{{lang-en|reverse engineering''}}) представлява процесът на генериране на изходен код на програма от нейния машинен код. Това е сложен и понякога забранен от автора на програмата процес. Обикновено полученият по този начин изходен код е неразбираем за човек.
 
 
== Примери ==
Line 59 ⟶ 58:
int b = 6; // декларира променливата ''b'' от целочислен тип и присвоя стойност равна на 6
int sum = a + b; // декларира променливата ''sum'' от целочислен тип и присвоя стойност равна на сбора от ''a'' и ''b''
Console.WriteLine("Сумата на двете числа е: " + sum); // извежда на екрана стойността на ''sum''
}
}
Line 73 ⟶ 72:
# присвоява сумата на ''a'' и ''b'' на ''c''
let c=$a+$b
# извежда резултата на екрана
echo $c
</syntaxhighlight>