Programowanie to modyfikowanie, rozszerzanie, naprawianie, ale przede wszystkim tworzenie oprogramowania.
Język programowania to usystematyzowany sposób przekazywania komputerowi poleceń do wykonania.
Język programowania pozwala programiście na precyzyjne przekazanie maszynie, jakie dane mają ulec obróbce i jakie czynności należy podjąć w określonych warunkach. Języki programowania klasyfikuje się zależnie od tego, do jakiego paradygmatu lub paradygmatów programowania najlepiej się nadają:
-
imperatywne - to paradygmat programowania, który opisuje proces wykonywania jako sekwencję instrukcji zmieniających stan programu. Podobnie jak tryb rozkazujący w lingwistyce wyraża żądania jakichś czynności do wykonania, programy imperatywne składają się z ciągu komend do wykonania przez komputer. Powszechnie programowanie imperatywne uważane jest za synonim programowania proceduralnego. Programowanie imperatywne znacznie różni się od funkcyjnego czy też programowania logicznego. W tamtych paradygmatach nie istnieje pojęcie instrukcji; kładą one bardziej nacisk na to, co ma zostać wykonane, a nie w jaki sposób, co ma miejsce w przypadku programowania funkcyjnego.
-
obiektowe - to metodyka tworzenia programów komputerowych, która definiuje programy za pomocą "obiektów" - elementów łączących stan (czyli dane) i zachowanie (czyli procedury, tu: metody). Obiektowy program komputerowy wyrażony jest jako zbiór takich obiektów, komunikujących się pomiędzy sobą w celu wykonywania zadań. Podejście to różni się od tradycyjnego programowania proceduralnego, gdzie dane i procedury nie są ze sobą bezpośrednio związane. Programowanie obiektowe ma ułatwić pisanie, konserwację i wielokrotne użycie programów lub ich fragmentów.
-
funkcyjne - to będąca odmianą programowania deklaratywnego filozofia programowania, w której funkcje należą do wartości podstawowych, a nacisk kładzie się na wartościowanie (często rekursywnych) funkcji, a nie na wykonywanie poleceń.
-
logiczne/deklaratywne - (nazywane także programowaniem w logice lub programowaniem w języku logiki) to będąca odmianą programowania deklaratywnego metoda programowania, w której program podawany jest jako pewien zestaw zależności, a obliczenia są dowodem pewnego twierdzenia w oparciu o te zależności. Na przykład chcemy stwierdzić, czy w danym grafie skierowanym istnieje ścieżka z pewnego punktu do pewnego innego punktu. Krawędzie zapisane są relacją edge(Skąd, Dokąd). Nasz program wyglądałby w Prologu tak:
connected(X, Y) :- X = Y.
connected(X, Y) :- edge(X,Z), connected(Z, Y).
Co czytamy następująco:
- istnieje ścieżka z X do Y, jeśli X = Y
- istnieje ścieżka z X do Y, jeśli dla jakiegoś Z istnieje krawędź z X do Z, oraz ścieżka z Z do Y
Programowanie logiczne umożliwia łatwy zapis wielu algorytmów, a programy logiczne w przeciwieństwie do imperatywnych łatwo też wykonywać równolegle.
- i wiele innych...