Paradygmaty programowania są integralną częścią języków programowania, którymi posługują się programiści. Wikipedia wyjaśnia, że paradygmat programowania to wysokopoziomowy sposób konceptualizacji oraz ustrukturyzowania programu komputerowego. Geeks for geeks przytacza, że jest to podejście do rozwiązania problemu. Paradygmaty mogą dotyczyć różnych aspektów programowania takich, jak sposób wykonania czy struktura programu.
Najważniejsze dwa paradygmaty programowania to programowanie imperatywne oraz programowanie deklaratywne. Określają one w jaki sposób program będzie wykonywany. W pierwszym przypadku program to sekwencja instrukcji zmieniająca stan programu. W drugim przypadku program określa cechy pożądanego wyniku, a nie sposób jego obliczenia. Paradygmaty te w istotny sposób wpływają na kształt języków programowania. Istnieje niewiele popularnych języków programowania natywnie łączących te dwa paradygmaty. Przykładem takiego języka jest Makefile, w którym występują reguły typowe dla języków deklaratywnych oraz związane z tymi regułami sekwencje instrukcji typowe dla języków imperatywnych.
Paradygmaty imperatywne
Wśród paradygmatów dotyczących programowania imperatywnego można wyróżnić:
- programowanie proceduralne zaleca dekompozycję programu na podprogramy najczęściej w formie funkcji i procedur,
- paradygmat programowania strukturalnego wprowadza instrukcje warunkowe i pętle oraz zabrania użycia instrukcji skoku (o paradygmacie pisaliśmy również we wpisie dotyczącym return early),
- programowanie obiektowe wprowadza dekompozycję kodu na klasy oraz obiekty organizujące związane ze sobą dane oraz funkcje,
- metaprogramowanie – technika tworzenia lub modyfikacji kodu. Wykorzystanie szablonów jest szczególnym przypadkiem wykorzystania tego paradygmatu.
- przetwarzanie współbieżne, równoległe oraz rozproszone – idea dekompozycji programu na mniejsze podprogramy możliwe do wykonania w tym samym czasie. Przetwarzanie współbieżne dotyczy architektur jednowątkowych, natomiast przetwarzanie równoległe występuje w przypadku architektur wielowątkowych (na przykład technologia hyper-threading), wielordzeniowych oraz wieloprocesorowych. Obliczenia rozproszone od równoległych odróżnia luźno powiązana architektura – przypadek najczęściej występuje w systemach połączonych w sieci komputerowej (przykładowo komputery w sieci Internet realizujące kopanie kryptowalut).
Paradygmaty deklaratywne
Paradygmaty związane z językami deklaratywnymi to między innymi:
- programowanie logiczne – w tym podejściu program przedstawiony jest w formie wiedzy (zestaw znanych zależności), obliczeniami jest zastosowanie reguł wnioskowania na podstawie tej wiedzy, a wynikiem jest potwierdzenie lub zaprzeczenie hipotezy związanej z wprowadzoną wiedzą,
- programowanie ograniczeń – paradygmat służący do rozwiązywania problemów kombinatoryki. Program zgodny z paradygmatem zawiera zestaw ograniczeń związanych ze zmiennymi decyzyjnymi, natomiast rozwiązanie w formie wartości zmiennych decyzyjnych spełniających wprowadzone ograniczenia uzyskiwane jest poprzez zastosowanie odpowiedniego modelu postępowania. Przykładami takich modeli jest model udoskonalania oraz model zaburzeń.
- programowanie funkcyjne – paradygmat określa, że program zbudowany jest z zestawu czystych funkcji (funkcji niezmieniających stanu).
Podsumowanie
Na stronach Wikipedii przedstawione są języki oraz paradygmaty programowania, jakie te języki wspierają.
Łatwo można dostrzec, że paradygmat imperatywny wykorzystywany jest najczęściej w językach ogólnego przeznaczenia drugiej oraz trzeciej generacji, natomiast paradygmat deklaratywny wykorzystywany jest do rozwiązywania wyspecjalizowanych problemów1.
Twój zespół potrzebuje wsparcia we wdrożeniu dobrych praktyk?
Leave a Reply