Programowanie imperatywne
Najbardziej pierwotny spos贸b programowania , gdzie program postrzegany jest jako ci膮g polece艅 dla komputera
Obliczenia rozumiemy tutaj jako sekwencj臋 polece艅 zmieniaj膮cych krok po kroku stan maszyny, a偶 do uzyskania oczekiwanego efektu
Stan maszyny rozumiemy tutaj jako zawarto艣膰 ca艂ej pami臋ci oraz rejestr贸w i znacznik贸w procesora.
J臋zyki wysokiego Poziomu jako Fortran, Algol, Pascal, C, pos艂uguj膮 si臋 pewnymi abstrakcjami ale wci膮偶 odpowiadaj膮 paradygmatami programowania imperatywnego.
Programowanie obiektowe
Program to zbi贸r porozumiewaj膮cych si臋 ze sob膮 obiekt贸w, czyli jednostek zawieraj膮cych pewne dane i umiej膮cych wykonywa膰 na nich pewne operacje.
Wa偶n膮 cech膮 jest powi膮zanie danych z operacjami na nich w ca艂o艣膰, stanowi膮c膮 odr臋bn膮 jednostk臋 zwan膮 obiektem.
Wa偶n膮 cech膮 jest mechanizm dzia艂ania , czyli mo偶liwo艣膰 definiowania nowych bardziej z艂o偶onych obiekt贸w w oparciu o obiekty wcze艣niej istniej膮ce.
Programowanie Funkcyjne
Program to z艂o偶ona funkcja (w sensie matematycznym), kt贸ra otrzymawszy dane wej艣ciowe wylicza pewien wynik.
Zasadnicz膮 r贸偶nic膮 w stosunku do poprzednich typ贸w jest brak stanu maszyny oraz nie ma tu zmiennych .
Konstruowanie programu polega r贸wnie na sk艂adanie r贸偶nych funkcji zazwyczaj z istotnych wykorzystaniem rekurencji. Cz臋sto definiuje si臋 funkcj臋 wy偶szego rz臋du, kt贸rych argumentami i wynikiem mog膮 by膰 inne funkcje.
Programowanie w Logice (programowanie logiczne)
Na program sk艂ada si臋 zbi贸r przes艂anek (zale偶no艣ci ) i pewne stwierdzenie zwane celem.
Wykonanie programu to pr贸ba udowodnienia celu w oparciu o podane przes艂anki
Obliczenia wykonywane s膮 nijako 鈥瀙rzy okazji鈥 dowiedzenia celu.
Nie wydajemy tutaj 鈥瀝ozkaz贸w鈥 , a jedynie opisujemy co wiemy i co chcemy uzyska膰 .
Programowanie imperatywne
program instruuje komputer jak przeprowadzi膰 obliczenia
Zorientowanie na rozwi膮zanie problem贸w natury, zmienne maj膮 tylko jedno znaczenie 鈥 warto艣膰 liczbow膮
Logika 鈥 definicja problemu do rozwi膮zania (jaki problem mamy rozwi膮za膰)
Sterowanie 鈥 spos贸b rozwi膮zania problemu (w jaki spos贸b rozwi膮za膰)
Symbolicznie tutaj algorytm = logika + sterowanie. Logika jest powi膮zana ze sterowaniem.
Programowanie deklaratywne
Uproszczenie zagadnienia poprawno艣ci programu przez oddzielenie logiki od sterowania
Programista 鈥 specyfikacja logicznej cz臋艣ci algorytmu
System 鈥 dostarczenie mechanizmu terowania
Programy zorientowane na przetwarzanie symboliczne, o znaczeniu symboli decyduj膮 operacj臋, za pomoc膮 kt贸rych s膮 przetwarzane.
Typy Programowania deklaratywnego
Programowanie w logice 鈥 wykorzystuje logik臋 elementarn膮 jako j臋zyk programowania
Programowanie funkcyjne 鈥 spos贸b przetwarzania, w kt贸rym program jest matematycznie poprawn膮 definicj膮 funkcji.
Programowanie Imperatywne | Programowanie deklaratywne | |
---|---|---|
Programowanie w logice | ||
Podstawowa zasada | JAK rozwi膮za膰 problem | JAKI problem (co ma by膰 rozwi膮zane) |
Program | Ci膮g polece艅 | Zbi贸r zda艅 traktowanych jako zbi贸r aksjomat贸w i regu艂 pewnej teorii |
Obliczenie | Wykonanie ci膮gu polece艅 dla danych wej艣ciowych | Dow贸d twierdzenia (celu) |
Przyk艂ady program贸w | Forton, Algol, Basic, Pascal, C, C++, Java | Prolog ,Godel-Life |
Sprawne wyspecjalizowane programy | Og贸lne czytelne poprawne programy |
Zastosowanie programowania deklaratywnego:
relacyjne bazy danych
przetwarzanie j臋zyka naturalnego i formalnego
automatyczne projektowanie,
symboliczne rozwi膮zywanie r贸wna艅
automatyczne dowodzenie twierdze艅
analiza struktur biochemicznych,
systemy exportowe
planowanie akcji.
RYS historyczny ( programowanie w logice)
1965 鈥 J. Robinson - zosta艂a wprowadzona metoda rezolucji z mifikacj膮
1972 鈥 powstanie j臋zyka PROLOG
1972 鈥 powstanie pierwszego kompilatora PROLOG-u napisanego w ALGOL-u,
1974 - Kowalski 鈥 wprowadzenie SLD- rezolucji
1977 鈥 Edinburgh Prolog
1984 鈥 Powstanie Journal of Logic Programming
1986 鈥 programowanie w logice z ograniczonymi wi臋zami,