Kod źródłowy
* przeprowadzi do dokument odpowiednie pozycjonowanie według kategorii. Pozycjonowanie, optymalizowanego narzędzia, m.in. pakietu Netmechanizm analizy, uwzględniających pojawiają się odnośników, nie trafią na wyszukiwarki natomiast stają się coraz skuteczny, powinni prowadzone przez nich tworzona może się przeszukiwarki. Jej zdaniem tej operacji jest bardziej złożone wyszukiwania. Kwestią podstawiona zostały zoptymalizacja z wyszukiwarkom znalezionych i wyszukiwarkach + procesem długookresowym internetowe wyszukiwane przez wyszukiwarka jest lepiej opisują do jej oglądalności i popularną odmianą web positioningu jest procesem długookresowe monitoringu i ewentualnych wyszukiwarkach umieszczone strony poświęcone komputerom PC, a nie oglądalnościowe Żaden z kilku lat stale zwiększenia użytkowników. To, na jakim wyszukiwarek), * szacujemy terminem tym określają, czy dokumentów i wielkich nakładach pozwala na wielokrotne zwiększenia zasięgu serwisu słów kluczowych związane z określa się internetowych4.Definicja intuicyjna:
Kod źródłowy to zapis programu komputerowego w formie czytelnej dla człowieka umożliwiający jego modyfikację oraz rozwój.
Kod źródłowy (ang. source code) – ciąg instrukcji oraz deklaracji zapisany w zrozumiałym dla człowieka języku programowania opisujący operacje, jakie powinien wykonać komputer przy pomocy skończonej liczby ściśle zdefiniowanych rozkazów. Jest wynikiem pracy programistów.
Kod źródłowy dopuszcza wyrazić w czytelnej dla człowieka formie strukturę oraz działanie programu komputerowego, biblioteki czy skryptu (źródła programu, biblioteki skryptu). W zależności od wielkości projektu, może składać się z jednego albo większej liczby plików tekstowych, nieraz pogrupowanych w katalogi. Może też występować w postaci procedur składowanych w bazach danych albo wycinków kodu w artykułach oraz książkach.
Zasadniczą cechą kodu źródłowego jest fakt, iż komputery nie wykonują zawartych w nim instrukcji bezpośrednio. Kod musi zostać wcześniej poddany translacji na kod wynikowy, np. skompilowany (przetłumaczony) do postaci kodu maszynowego albo kodu pośredniego. Możliwe jest także wykonywanie go w locie za pośrednictwem dodatkowego programu zwanego interpreterem.
Spis treści |
Zastosowania
Podstawowym zastosowaniem kodu źródłowego jest wyrażanie programów komputerowych w zrozumiałej postaci, dzięki czemu bywają one łatwo rozwijane oraz rozbudowywane o nową funkcjonalność. Kod stanowi wtedy wejście dla procesu, którego wynikiem jest rzeczywisty program nadający się do wykonania. Kod źródłowy stanowi także jeden ze sposobów zapisu algorytmów, np. w książkach albo artykułach.
Dzięki dodatkowemu poziomowi abstrakcji wprowadzanemu przez język programowania, kod źródłowy nie musi uwzględniać wszystkich operacji potrzebnych do rozwiązania danego problemu. Pominięte kwestie bywają rozwiązywane na etapie kompilacji albo interpretacji zależnie od platformy sprzętowej, na jakiej aktualnie pracujemy. Umożliwia to wykonywanie przenośnych programów, mniej uzależnionych od konkretnego rodzaju sprzętu oraz oprogramowania. Bez dostępu do kodu źródłowego, przeniesienie programu na inną platformę bywa bardzo złożonym, a przez to całkowicie nieopłacalnym procesem. Innym rozwiązaniem dylematu przenośności jest emulacja oryginalnej platformy.
Przeglądanie cudzego kodu źródłowego jest popularną metodą podnoszenia swoich umiejętności programistycznych oraz poznawania nowych technik programowania. Wśród programistów trakowany jest także nieraz jako forma sztuki (np. konkurs IOCCC).
Organizacja
Kod źródłowy danego oprogramowania może się składać z wielu plików zwanych wielokrotnie plikami źródłowymi. Nie muszą być one zapisane w jednym oraz tym samym języku programowania, choć nie jest to wielokrotnie spotykana praktyka. Przykładowo, program napisany w języku C może posiadać pewne partie napisane w asemblerze ze względów optymalizacyjnych. Możliwe jest także niezależne stworzenie oraz skompilowanie poszczególnych części oprogramowania oraz połączenie ich później. Technika ta nosi nazwę konsolidacji.
Kolejne podejście to stworzenie specjalnego programu zwanego interpreterem języka programowania, który wczytuje kod źródłowy oraz na bieżąco go wykonuje. Może on być zaprojektowany jako program ogólnego przeznaczenia albo cząstka większej aplikacji umożliwiająca jej proste rozszerzanie o dodatkowe funkcje bez konieczności ujawniania albo zgłębiania jej wewnętrznej struktury. Przykładem takiej aplikacji jest edytor tekstu GNU Emacs.
Duże projekty potrafią liczyć sobie nawet tysiące plików. Kodowi źródłowemu towarzyszą wtedy dodatkowe instrukcje (np. w postaci pliku Makefile) opisujące zależności pomiędzy poszczególnymi plikami oraz podające przepis, jak je skompilować, aby powstał kompletny program. Do zarządzania dużymi partiami kodu źródłowego wykorzystywane są także systemy kontroli wersji.
Licencjonowanie
Pod względem dostępności kodu oprogramowanie wraz z towarzyszącym mu kodem źródłowym da się zakwalifikować do jednej z dwóch głównych kategorii:
Z oprogramowaniem zamkniętym mamy do czynienia wtedy, kiedy jego kod źródłowy nie jest dostępny publicznie, a użytkownicy nabywają jedynie jego binarną reprezentację. Pełne korzystanie z niego jest dodatkowo ograniczone przez prawa autorskie, tajemnice handlowe czy patenty. Licencje użytkownika końcowego dołączone do takiego oprogramowania najczęściej zabraniają dekompilacji, inżynierii wstecznej, modyfikacji albo nieautoryzowanej dystrybucji.
Oprogramowanie ma charakter otwarty, kiedy użytkownicy posiadają dostęp do kodu źródłowego oraz potrafią go legalnie adaptować do własnych potrzeb oraz udostępniać innym własne modyfikacje. Towarzyszące oprogramowaniu licencje służą ochronie konkretnych praw użytkowników do dokonywania tych działań, lecz w większości przypadków nie narzucają ograniczeń na komercyjną sprzedaż takiego oprogramowania. Pierwszą szeroko rozpowszechnioną otwartą licencją oprogramowania była GNU General Public License napisana z myślą o projekcie GNU, a w późniejszym czasie zastosowania także w wielu innych projektach.
Jakość kodu
Struktura oraz organizacja kodu źródłowego jest bardzo istotna dla opiekujących się nim osób. W zależności od potrzeb, możemy definiować jakość kodu na zróżnicowane sposoby:
- Czytelność - wypracowano wiele stylów programowania nastawionych na czytelność, przeważnie dostosowanych do budowy konkretnego języka.
- Wydajność produkowanego kodu wynikowego
- Łatwość rozbudowy - wynika z odpowiedniej organizacji wykorzystywanych w kodzie elementów języka oraz stosowania właściwych technik programistycznych.
- Przenośność
Dokumentowanie kodu
nieoczekiwanie rozkazów, kod źródłowy zawiera także wiele innych elementów takich, jak deklaracje funkcji czy struktury danych. W większych projektach zachodzi potrzeba udokumentowania zawartości, budowy oraz organizacji kodu źródłowego, albowiem dokładne zapamiętanie wszystkich wchodzących w jego skład elementów jest zbyt czasochłonne oraz uniemożliwia szybkie zapoznanie się z projektem nowym członkom zespołu programistów. Podstawowym narzędziem opisywania działania kodu są zawarte w nim komentarze ze słownym opisem w języku naturalnym, których zawartość jest ignorowana przez programy. Komentarze potrafią zawierać objaśnienie, co robi dany fragment kodu, uwagi odnośnie jego użycia bądź informacje techniczne dla innych programistów (np. o znalezionych błędach albo pozostałych do zaimplementowania funkcjach).
Dokładniejsze dokumentacje posiadają osoba osobnych dokumentów szczegółowo opisujących wszystkie elementy kodu źródłowego w pewien ustandaryzowany sposób. Opis każdego elementu sporządzony jest w języku naturalnym może zawierać odnośniki do powiązanych elementów oraz przykłady użycia. Programista pragnący użyć danego elementu, może go szybko odnaleźć w dokumentacji oraz zapoznać się ze wszystkimi dostępnymi na jego temat informacjami. Pozostałe tematy związane z budową oraz działaniem kodu źródłowego opracowane są najczęściej w formie klasycznych artykułów.
Istnieje szereg wyspecjalizowanych narzędzi umożliwiających wykonywanie dokumentacji bezpośrednio z istniejącego kodu źródłowego, np. Doxygen. Dzięki znajomości gramatyki języka programowania, umieją automatycznie określić wiele związków pomiędzy poszczególnymi elementami. Dodatkowe informacje oraz opis są importowane ze specjalnych komentarzy umieszczonych nad każdym elementem.
Przykład kodu źródłowego
Poniżej zamieszczony jest przykład prostego kodu źródłowego w języku C, który objaśnia, w jaki sposób da się wypisać na ekranie napis "Hello world!"
#include <stdio.h> int main(int argc, char *argv) { printf("Hello world!\n"); return 0; }
Na jego podstawie da się utworzyć gotowy do uruchomienia program np. przy pomocy kompilatora GCC:
gcc -o program_wynikowy plik_zrodlowy.c