PF:Moduł Wstęp: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Przemek (dyskusja | edycje)
Nie podano opisu zmian
 
Przemek (dyskusja | edycje)
Nie podano opisu zmian
Linia 1: Linia 1:
Jaki jest cel programowania?
Jaki jest cel programowania?
      Pisz±c program staramy się osi±gn±ć jaki¶ cel.
      Jak w każdej działalno¶ci, dobrze jest najpierw uzmysłowić sobie
      co chcemy osi±gn±ć, a dopiero potem starać się to osi±gn±ć ---
      inaczej możemy uzyskać niezamierzone rezultaty.
      Cel, do którego d±żymy zwykle opisuje się w tzw.\ specyfikacji.
      Specyfikacja może być mniej lub bardziej formalna.
      Je¶li jest sformalizowana, to nasz cel ma zwykle postać
      relacji między danymi, a wynikami.
      Program, który tworzymy powinien mie¶cić się w ramach okre¶lonych
      przez specyfikację.
      Weryfikacja poprawno¶ci programu polega na sprawdzeniu, że faktycznie
      tak jest.
      Paradygmat funkcyjny polega na tym, że pisz±c program tworzymy
      pojęcia matematyczne, coraz bardziej skomplikowane, aż do
      osi±gnięcia celu.
      Pojęcia te maj± postać stałych i funkcji, st±d nazwa
      \emph{programowanie funkcyjne}.
      Oczywi¶cie tworzone funkcje s± wykonywalne, tzn.\ dostarczaj±c
      argumentów możemy obliczyć ich warto¶ci.
      Weryfikacja programu funkcyjnego polega na udowodnieniu, że
      tworzone przez nas funkcje zawieraj± się w relacjach okre¶lonych
      przez specyfikacje (i s± okre¶lone na odpowiednich dziedzinach).
      Charakterystyczne dla programowania funkcyjnego jest również to,
      że funkcje s± ,,obywatelami pierwszej kategorii'', tzn.\
      przysługuj± im wszystkie te prawa, co innym warto¶ciom.
      W tej chwili nie jest jeszcze jasne o jakie prawa może chodzić.
      Można jednak ¶miało powiedzieć, że jest to jedna z fundamentalnych
      zasad programowania funkcyjnego.
      Porównajmy paradygmat funkcyjny i imperatywny.
      Programowanie imperatywne jest powszechnie znane.
      Na czym jednak polega paradygmat imperatywny?
      W naszych programach zwykle staramy się wymodelować istotny dla nas
      fragment otaczaj±cego nas ¶wiata.
      ¦wiat ten, składa się (na codzienny użytek) z przedmiotów.
      Przedmiotom tym odpowiadaj± w programach imperatywnych
      zmienne lub obiekty.
      Przedmioty w ¶wiecie rzeczywistym zmieniaj± się wraz z upływem czasu.
      Podobnie więc, zmienne i obiekty obdarzone s± stanem, który może
      się zmieniać w czasie.
      Dane s± to pewne przedmioty, na których należy wykonywać okre¶lone
      czynno¶ci, w wyniku których przeistocz± się one w wyniki.
      Upływ czasu w ¶wiecie rzeczywistym jest modelowany przez upływ czasu
      w komputerze, a zmiany stanów s± realizowane przez przypisania.
      Pojęcie czasu nie jest tak bardzo obecne w programach funkcyjnych.
      Oczywi¶cie, aby użyć pojęcia musimy je najpierw zdefiniować, a
      żeby uzyskać wynik funkcji musimy najpierw dostarczyć argumentów.
      W ,,czystym'' programowaniu funkcyjnym nie występuje jednak
      pojęcie zmiennej, ani przypisania.
      Nie ma też pętli, jako konstrukcji zwi±zanych z czasem i zmian±.

Wersja z 13:15, 14 lip 2006

Jaki jest cel programowania?