24.01.20223 min

Hamza Alami ibn JamaaBeginner Developper

Paradygmat programowania logicznego - wady i zalety

Poznaj wady i zalety paradygmatu logicznego programowania. Sprawdź, jak zostać programistycznym poliglotą.

Paradygmat programowania logicznego - wady i zalety

Większość z nas, programistów, rozumie programowanie jako sposób robienia rzeczy, poprzez robienie innych, małych w sposób uporządkowany i sekwencyjny. Tak naprawdę, wiele naszych codziennych zadań właśnie tak wygląda!

Powiedzmy, że oboje jesteśmy głodni i chcemy upiec ciasto, więc będziemy postępować zgodnie z krokami, aby je zrobić:

  1. Sprawdzamy, czy mamy wszystkie niezbędne składniki.
  2. Rozgrzewamy piekarnik
  3. Mieszamy w misce cukier i masło, jajka...


Strategia i metodologia rozwiązania problemu znane są w programowaniu jako paradygmaty programowania. Istnieje ich wiele i można je podzielić na 2 główne kategorie: programowanie imperatywne i programowanie deklaratywne, a każde z nich rozdziela się na podkategorie, tak jak przedstawiono poniżej:

Imperatywny paradygmat programowania polega na zmianie stanu maszyny i programu poprzez wykonywanie instrukcji i zadań krok po kroku, pozwalając nam manipulować przepływem sterowania w programie. Kładzie nacisk na to “jak działa kod”.

Deklaratywny paradygmat programowania jest natomiast sposobem na tworzenie programów poprzez podanie jedynie logiki obliczeń. Kładzie nacisk na to “co robi kod”.


O co chodzi w paradygmacie programowania logicznego?

Paradygmat programowania logicznego wykorzystuje predykaty i instrukcje logiczne, takie jak fakty i reguły, jako dane bazowe do odpowiedzi na zadane zapytanie. Używa abstrakcyjnego modelu podobnego do instrukcji logicznych, aby radzić sobie z obiektami i relacjami pomiędzy nimi. Pierwszą rzeczą, którą powinniśmy zrobić, jest ustanowienie logiki, która wiąże stwierdzone fakty i reguły, natomiast pisanie kodu jest tylko kwestią wyraźnego wyrażenia tych instrukcji w wybranej składni języka.

Niektóre z popularnych logicznych języków programowania to: Prolog, Datalog, ASP...


Dlaczego powinieneś być zainteresowany nauką programowania logicznego?

Jedną z głównych zalet tego paradygmatu jest fakt, że jest on ogólnie łatwiejszy do napisania, przeczytania i zrozumienia, co sprawia, że jest łatwiejszy do utrzymania, a przez to koszty również są niższe. Aby utworzyć procedurę w C, powinniśmy jawnie zadeklarować, co będziemy robić w każdym kroku, a kompilator wykona je w podanej kolejności.

Natomiast w języku programowania logicznego wszystko, co musimy napisać to warunki konieczne do uzyskania predykatu prawdziwego lub fałszywego, a dzięki niektórym technikom, takim jak rekurencja, możemy tworzyć pętle i bardziej złożone instrukcje...

Możemy używać go do analizy predykcyjnej: języki logiczne mogą wyszukiwać niespójności w celu dokonywania przewidywań przy użyciu dużych zbiorów danych, jak np. przewidywanie awarii maszyn przemysłowych lub przetwarzania języka naturalnego: co pozwala na lepsze interakcje między ludźmi i komputerami.

Inną spekulacją jest to, że programowanie logiczne może być kiedyś przyszłością programowania. Wyobraźmy sobie świat, w którym jedynymi rzeczami potrzebnymi do wprowadzenia do maszyny, aby coś obliczyć, są założenia wyjściowe. Cel jeszcze nie został osiągnięty, ale kto wie, może w niedalekiej przyszłości?


No dobrze, brzmi całkiem nieźle, ale jak dokładnie wygląda kod logiczny?

Najpopularniejszym deklaratywnym logicznym językiem programowania i tym, który zaraz poznamy jest Prolog: jego nazwa jest połączeniem słów PROgramming i LOGic. Język ten opiera się na 3 elementach:

Fakty − Fakt jest predykatem, który jest prawdziwy. (Przykład: food(Burger).)

Reguły −  Reguły są rozszerzeniami faktów, które zawierają klauzule warunkowe. Aby reguła była skuteczna, muszą być spełnione następujące warunki.
(Przykład: Predicate(args) :- Expr1 , ... , ExprN.: można interpretować jako: jeśli Expr1 ... ExprN są prawdziwe, to predykat jest prawdziwy)

Pytania − Aby uruchomić program w Prologu, potrzebujemy kilku pytań, na które możemy odpowiedzieć za pomocą podanych faktów i reguł.


Przykładowy program i wykonanie:

food(Burger).

food(Pizza).


Prosty przykładowy program w Prologu

- ,: logiczne „i" (Przykład: w “predicate1(args) , predicate2(args)” , ‘,’ jest logicznym “i”)

- stałe zaczynają się od małych liter.


Mamy 6 predykatów, które możemy zsumować w grafie:

Na przykład, father (amine, ahmed) może być interpretowane jako: amine jest ojcem ahmeda.

Dla ostatniej reguły siblings (A,B): A i B są rodzeństwem, jeśli mają tego samego rodzica lub tę samą matkę. Jak sugeruje output, khawla i ahmed są rzeczywiście rodzeństwem!


Wnioski

Jako paradygmat, programowanie logiczne ma zarówno zalety, jak i wady. Języki pokrewne mogą nie być tak szybkie, jak inne, ale sformułowanie rozwiązania problemu za ich pomocą może być bardziej praktyczne. Ogólnie rzecz biorąc, zrozumienie paradygmatów jest kluczowym elementem, dzięki któremu programista staje się poliglotą: kiedy już zrozumiesz paradygmat związany z danym językiem, jedyne co musisz jeszcze zrobić to przyswoić jego składnię!


Oryginał tekstu w języku angielskim przeczytasz tutaj.

<p>Loading...</p>