Jezyk programowania Algorytm, dokładny przepis podający sposób rozwiązania określonego zadania w skończonej liczbie kroków; zbiór poleceń odnoszących się do pewnych obiektów, ze wskazaniem porządku, w jakim mają być realizowane. Nabrał znaczenia z rozwojem informatyki, gdzie opisuje logiczny ciąg operacji, które ma wykonać program. Algorytm zapisany przy pomocy języka programowania jest programem. Wyróżnia się algorytmy numeryczne, operujące na liczbach (np. algorytm Euklidesa), i nienumeryczne, operujące na obiektach nieliczbowych (np. sortowanie dokumentów). Istnieje również podział algorytmów na sekwencyjne (kolejność czynności jest określona jednoznacznie) i niesekwencyjne (równoległe, współbieżne - następstwo między pewnymi operacjami nie jest określone). Algorytmy charakteryzują się możliwością wyrażania ich w różnych językach i przez skończoną liczbę symboli, bez odwoływania się do analogii, a także faktyczną wykonalnością i możliwością wielokrotnej realizacji. Termin algorytm wywodzi się od zlatynizowanej formy (Algorismus, Algorithmus) nazwiska matematyka arabskiego z IX w., AlChuwarizmiego. Dekompilacja (angielskie decompilation, deassembling), odtworzenie postaci źródłowej programu na podstawie jego kodu wynikowego. Dekompilacja nie odtworzy, co oczywiste, komentarzy i układu tekstu źródłowego programu. Stosowanie dekompilacji może rodzić problemy prawne. Interpreter, interpretator (angielskie interpreter), 1) translator przekładający instrukcje programu na kod pośredni, który następnie interpretuje przy każdym ich wykonaniu. Ponieważ interpreter nie tworzy przekładu w kodzie maszynowym, lecz wykonuje instrukcje, tłumacząc je na bieżąco za każdym razem, wykonanie programu znacznie się wydłuża. Interpreter nie zmusza z kolei do oczekiwania na wykonanie kompilacji po każdej zmianie programu. Typowymi interpreterami są systemy programowania Basic, Java, Perl; 2) czynnościowy wzorzec projektowania, w którym rozpatruje się automatyczne zbudowanie zbioru klas interpretujących zdania języka na podstawie jego gramatyki i opisów semantycznych. Basic, BASIC (z angielskiego Beginners All-purpose Symbolic Instruction Code), przełomowy w chwili powstania w 1964, potem mocno krytykowany za brak strukturalności, prosty, interpretowany język programowania, spopularyzowany w komputerach ośmiobitowych i kalkulatorach programowanych. Jego twórcy – J. Kemeny i T. Kurtz (Dartmouth College, USA) – przedstawili go jako rewolucyjną propozycję wobec języków algolopodobnych. Basic z założenia nadawał się do pracy interakcyjnej i miał ujmować prostotą (m. in. brak typów, numerowane instrukcje ułatwiały redagowanie programu). Pierwsze implementacje Basica były wykonywane na minikomputerach, a nawet na komputerach stacjonarnych (m. in. na polskich komputerach ODRA 1204 i ODRA 1305, także w wersji kompilowanej). Oprzyrządowany w podstawowe operacje plikowe Basic na długo stał się nie tylko podstawowym językiem mikrokomputerów, lecz także ich systemem operacyjnym. Mimo przydatności do programowania doraźnego w małej skali, oryginalny Basic został odrzucony jako nieprzystosowany do nauczania początkowego informatyki i wyparty przez strukturalny język Logo. Odrodzony i zmetamorfozowany zarówno pod względem struktur sterowania i danych, jak i interfejsu systemowego Basic znajduje szerokie zastosowanie w programowaniu aplikacji dla komputerów typu IBM PC pod postacią platformy programowania RAD o nazwie VisualBasic. W tym nowoczesnym produkcie z Basica pozostała głównie nazwa. C, proceduralny język programowania wysokiego poziomu, zaprojektowany w 1972 przez D. M. Ritchiego i zrealizowany pod systemem operacyjnym UNIX dla komputera PDP-11. Początkowo C był językiem oprogramowania systemowego (powstał jako język do przeprogramowania systemu UNIX). Szybko zyskał popularność jako uniwersalny język programowania. Cechami języka C są zwięzłość i elastyczność, przy jednoczesnym przerzucaniu dużej odpowiedzialności na programistę (nie ma np. wbudowanej kontroli indeksowania tablic). “Język C jest jak ostry nóż: w sprawnych rękach narzędzie proste i użyteczne, które jednak może skaleczyć nowicjusza” (Koenig). W latach 1983-1988 język C uległ standaryzacji. Znormalizowany język C nosi nazwę ANSI C. Fortran, FORTRAN (angielskie FORTRAN, FORmula TRANslator), jeden z pierwszych szeroko używanych, algorytmicznych języków programowania, opracowany przez J. Backusa w 1957. Po wielu unowocześnieniach i zmianach (Fortran 77, Fortran 90) stosowany do dzisiaj. Język Fortran powstał jako wynik wczesnych doświadczeń w programowaniu komputerów za pomocą autokodów z lat 1951-56. Pierwszą implementację Fortranu wykonano dla maszyny IBM-704. W 1958 powstała wersja Fortran II wprowadzająca możliwość kompilacji niezależnej (IBM-704), a w 1959 jej odpowiednik dla komputera IBM-709. Kolejna wersja Fortranu nosiła nazwę XTRAN, jej autorzy weszli w skład grupy projektującej język Algol 58. Wersja Fortran IV nosiła już wyraźny wpływ języka Algol. W latach sześćdziesiątych XX w. IBM-owski Fortran spopularyzował się na komputerach różnych typów. Do końca lat siedemdziesiątych szeroko użytkowany jako język obliczeń inżynierskich i naukowych. Dostępny również na komputerach osobistych. Java, popularny język programowania obiektowego autorstwa J. Goslinga, zaprojektowany w firmie Sun Microsystems, używany szeroko do oprogramowywania specjalizowanych mikroprocesorów, wzbogacania prezentacji danych zawartych w dokumentach HTML, pamiętanych w komputerach sieci Internet oraz do opracowywania samodzielnych aplikacji wielowątkowych i rozproszonych. Kompilatory języka Java produkują bajtokod, który nadaje się do interpretacji Język programowania, zbiór zasad składni, instrukcji, dzięki którym powstaje kod źródłowy programu. Procesor jest w stanie wykonywać program w kodzie maszynowym. Jednakże tworzenie programów w tym języku jest praktycznie niemożliwe. Dlatego programista używa języka zrozumiałego dla człowieka, który następnie jest kompilowany bądź interpretowany do postaci maszynowej. Istnieje wiele rodzajów języków programowania. Można je podzielić na języki strukturalne i obiektowe. Innym kryterium podziału jest zastosowanie języków (innych używa się do tworzenia programów multimedialnych, a innych do obliczeń numerycznych czy np. aplikacji sieciowych). Niektóre z języków są bardziej uniwersalne niż inne. Do najpopularniejszych obecnie języków programowania należą C/C++, Java, Fortran czy Pascal. Kod maszynowy, język rozumiany przez procesor. Program w kodzie maszynowym składa się z ciągu wartości binarnych, które oznaczają zarówno instrukcje jak i dane. Program, który jest napisany w pewnym języku programowania, musi zostać skompilowany, aby mógł być wykonywany przez komputer. Postać kodu maszynowego zależy od architektury procesora, na który dany program jest przeznaczony. Dlatego program musi zostać skompilowany na konkretnej maszynie, ewentualnie na systemie kompatybilnym z systemem docelowym. Kompilacja (angielskie compiling), nie całkiem odpowiedni, lecz powszechnie przyjęty termin określający proces tłumaczenia programu z postaci źródłowej na kod wynikowy. Obejmując fazy analizy leksykalnej, składniowej i generowania kodu, kompilacja nie musi przekształcać programu źródłowego w wykonywalny kod maszynowy komputera. Produktem kompilacji jest najczęściej kod z adresami względnymi, obliczonymi z osobna dla każdego skompilowanego modułu. Podczas łączenia modułów (które bardziej zasługiwałoby na miano “kompilacji”, lecz nie jest to przyjęte) następuje ostateczne przeliczenie adresów względem wspólnej bazy i doprowadzenie przetłumaczonego programu do postaci ładowalnej. Kompilator, w informatyce, translator języka wysokiego poziomu, którego programy wynikowe mogą być wprowadzone do pamięci i wykonane dopiero po zakończeniu tłumaczenia (w odróżnieniu od interpretatora). Programy wynikowe kompilatora mogą być przechowywane, łączone z innymi programami i wielokrotnie wykonywane znacznie szybciej niż programy interpretowane. Pascal, strukturalny język programowania stworzony przez N. Wirtha na początku lat 70. Jego zastosowanie w praktyce jest obecnie bardzo ograniczone. Najważniejszym zastosowaniem języka Pascal jest nauka programowania. Pozostaje on przez to jednym z najszerzej znanych i popularnych języków, zwłaszcza wśród początkujących programistów. Perl, interpretowany język programowania wyróżniający się szczególną przydatnością do programowania zadań systematycznego przetwarzania tekstów. Programowanie obiektowe, rodzaj programowania, w którym dane i wykonywane na nich operacje są połączone. Ten formalny zabieg umożliwia szybsze pisanie większych programów, przez "składanie ich" ze wzajemnie powiązanych obiektów, które odpowiadają za daną funkcję programu (np. przygotowanie danych, wykonanie obliczeń, zaprezentowanie wyników). Programowanie strukturalne, rodzaj programowania w którym program podzielony jest na niewielkie moduły - procedury, bądź funkcje. Programowanie strukturalne ułatwia projektowanie, testowanie a także utrzymanie kodu programu. Do najpopularniejszych języków strukturalnych zalicza się Pascal, C, Modula-2. Suma kontrolna (checksum), dodatkowa porcja informacji obliczona na podstawie ciągu bajtów zawartych w rekordzie, bloku lub komunikacie i dołączona do zasadniczej informacji w celu wykrywania ewentualnych błędów przy późniejszym odczytywaniu tej informacji. Jedna z metod obliczania sumy kontrolnej polega na sumowania bajtów jednostki informacji w polu o ograniczonej długości, bez uwzględniania powstających nadmiarów. Stosowana także do wykrywania programów zainfekowanych przez wirusy komputerowe.