Paradygmat programowania

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Paradygmat programowania (ang. programming paradigm) — wzorzec programowania komputerów przedkładany w danym okresie rozwoju informatyki ponad inne lub ceniony w pewnych okolicznościach lub zastosowaniach.

Paradygmat programowania definiuje sposób patrzenia programisty na przepływ sterowania i wykonywanie programu komputerowego. Przykładowo, w programowaniu obiektowym jest on traktowany jako zbiór współpracujących ze sobą obiektów, podczas gdy w programowaniu funkcyjnym definiujemy, co trzeba wykonać, a nie w jaki sposób.

Różne języki programowania mogą wspierać różne paradygmaty programowania. Przykładowo, Smalltalk i Java są ściśle zaprojektowane dla potrzeb programowania obiektowego, natomiast Haskell jest językiem funkcyjnym. Istnieją także języki wspierające kilka paradygmatów, np. Common Lisp oraz Python.

Wiele paradygmatów jest dobrze znanych z tego, jakie praktyki są w nich zakazane, a jakie dozwolone. Ścisłe programowanie funkcyjne nie pozwala na tworzenie skutków ubocznych. W programowaniu strukturalnym nie korzysta się z instrukcji skoku (goto). Częściowo z tego właśnie powodu nowe paradygmaty są uważane za zbyt ścisłe przez osoby przyzwyczajone do wcześniejszych stylów. Jednakże takie omijanie pewnych technik znacznie ułatwia przeprowadzanie dowodów o poprawności programu, albo po prostu zrozumienia jego działania, bez ograniczania samego języka programowania.

Zależności między paradygmatami programowania mogą przybierać skomplikowane formy, ponieważ jeden język może wspierać wiele różnych paradygmatów. Na przykład, C++ posiada elementy programowania proceduralnego, obiektowego oraz uogólnionego, co stanowi o nim, że jest hybrydowym językiem. To projektanci i programiści decydują, jak zbudować z nich wszystkich w pełni działający program. Niektórzy decydują się na ścisłe programowanie proceduralne, natomiast inni łączą ze sobą elementy wielu paradygmatów w zależności od potrzeb.

Przykłady[edytuj | edytuj kod]

Zobacz też[edytuj | edytuj kod]