Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Paradygmaty i języki programowania

Podobne prezentacje


Prezentacja na temat: "Paradygmaty i języki programowania"— Zapis prezentacji:

1 Paradygmaty i języki programowania
Wprowadzenie dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

2 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Czym jest paradygmat? Paradygmat to przyjęty sposób widzenia rzeczywistości w danej dziedzinie, doktrynie itp. Zespół form fleksyjnych (deklinacyjnych lub koniugacyjnych) właściwy danemu typowi wyrazów. źródło: słownik języka polskiego, PWN dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

3 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Czym jest paradygmat programowania? Paradygmat programowania (z ang. programming paradigm), to wzorzec programowania przedkładany w danym okresie rozwoju informatyki ponad inne lub szczególnie ceniony w pewnych okolicznościach lub zastosowaniach. Paradygmat programowania definiuje sposób patrzenia programisty na przepływ sterowania i wykonywanie programu komputerowego. źródło: dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

4 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Podział paradygmatów Programowanie Imperatywne Deklaratywne Zdarzeniowe Obiektowe Strukturalne Generyczne Współbieżne Funkcyjne Logiczne SQL, XML Proceduralne dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

5 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Skąd taki podział? Programowanie imperatywne to paradygmat programowania, który opisuje proces wykonywania jako sekwencję instrukcji zmieniających stan programu. Podobnie jak tryb rozkazujący w lingwistyce wyraża żądania jakichś czynności do wykonania, programy imperatywne składają się z ciągu komend do wykonania przez komputer. Programowanie deklaratywne to paradygmat programowania, w którym programista zamiast definiowania sposobu rozwiązania, czyli sekwencji kroków prowadzących do uzyskania wyniku, opisuje samo rozwiązanie. Innymi słowy programowanie w tych językach polega na opisywaniu tego co nas interesuje a nie jak to zrobić (brak opisu przepływu sterowania). dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

6 Programowanie imperatywne vs. deklaratywne
dr Robert Kowalczyk WMiI UŁ

7 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Przykład – programowanie imperatywne a deklaratywne Imperatywne programowanie: var numbers = [1,2,3,4,5] var doubled = [] for(var i = 0; i < numbers.length; i++) { var newNumber = numbers[i] * 2 doubled.push(newNumber) } console.write(doubled) //=> [2,4,6,8,10] Deklaratywne programowanie var doubled = numbers.map(function(n) { return n * 2 }) console.log(doubled) //=> [2,4,6,8,10] dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

8 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Cztery główne paradygmaty Paradygmat programowania Proceduralnego/Strukturalnego Paradygmat programowania Obiektowego Paradygmat programowania Funkcyjnego Paradygmat programowania Logicznego dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

9 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Programowanie Proceduralne/Strukturalne Paradygmat programowania proceduralnego (z ang. procedural programming), to paradygmat programowania zalecający dzielenie kodu na procedury, czyli fragmenty wykonujące ściśle określone operacje. Procedury nie powinny korzystać ze zmiennych globalnych (w miarę możliwości), lecz pobierać i przekazywać wszystkie dane (czy też wskaźniki do nich) jako parametry wywołania. Paradygmat programowania strukturalnego (z ang. structured programming), to paradygmat zalecający hierarchiczne dzielenie kodu na bloki, z jednym punktem wejścia i jednym lub wieloma punktami wyjścia. Chodzi przede wszystkim o nieużywanie (lub ograniczenie) instrukcji skoku (goto). Trzema kluczowy strukturami są: - sekwencja (instrukcja_1; instrukcja_2;…; instrukcja_n), - wybór (if, if...else, switch, case), - powtarzanie (while, repeat, for). Strukturalność zakłócają instrukcje typu: break, continue, które jednak w niektórych przypadkach znacząco podnoszą czytelność kodu i elastyczność kodu. Kluczowe koncepcje: zmienne, typy, procedury i dane abstrakcyjne. Zastosowania: oprogramowanie sieciowe, systemy operacyjne. Języki charakterystyczne dla tych paradygmatów, to m.in.: Fortran (lata 50. XX wieku), Cobol (lata 60. XX wieku), Pascal (lata 70. XX wieku), C (lata 70. XX wieku), C++ (lata 80. XX wieku), i inne. dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

10 Programowanie Proceduralne/Strukturalne - przykład
dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

11 Programowanie Obiektowe
Paradygmat programowania obiektowego (ang. object-oriented programming), to paradygmat programowania, w którym programy definiuje się za pomocą obiektów - elementów łączących stan (czyli dane, nazywane najczęściej polami) i zachowanie (czyli procedury, tu: metody). Obiektowy program komputerowy wyrażony jest jako zbiór takich obiektów, komunikujących się pomiędzy sobą w celu wykonywania zadań. Kluczowe koncepcje: klasy i obiekty, dziedziczenie, enkapsulacja, polimorfizm. Zastosowania: aplikacje WWW i aplikacje desktopowe – współczesny rynek oprogramowania. Języki charakterystyczne dla tego typu paradygmatu, to m.in.: Simula (lata 60. XX wieku), Smalltalk (lata 80. XX wieku), C++ (lata 90. XX wieku), C# (początek XXI wieku), Java (lata 90. XX wieku), i inne. dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

12 Obcject-oriented programming - example
dr Robert Kowalczyk WMiI UŁ

13 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Programowanie Funkcyjne Paradygmat programowania funkcyjnego lub paradygmat programowania funkcjonalnego (z ang. functional programming), to paradygmat programowanie będący odmianą programowania deklaratywnego, w której funkcje należą do wartości podstawowych, a nacisk kładzie się na wartościowanie (często rekurencyjnych) funkcji, a nie na wykonywanie poleceń. Podstawą teoretyczną programowania funkcyjnego był opracowany w latach 30. XX wieku przez Alonzo Churcha rachunek lambda, a dokładnie rachunek lambda z typami. Kluczowe koncepcje: funkcje, rachunek lambda, parametryczny polimorfizm. Zastosowania: teoretyczne, telekomunikacja, obliczenia finansowe. Języki charakterystyczne dla tego typu paradygmatu, to m.in.: Lisp (lata 50. XX wieku), ML (lata 70. XX wieku), Haskell (lata 80. XX wieku), H# (lata 80. XX wieku), Erlang (lata 80. XX wieku) i inne. dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

14 dr Robert Kowalczyk WMiI UŁ
Programowanie funkcyjne - przykład dr Robert Kowalczyk WMiI UŁ

15 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Programowanie funkcyjne - przykład dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

16 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Programowanie w logice Paradygmat programowania logicznego lub paradygmat programowania w logice (z ang. logic programming), to będąca odmianą programowania deklaratywnego metoda programowania, w której program podawany jest jako pewien zestaw zależności, i relacji zachodzących między tymi zależnościami. Kluczowe koncepcje: fakty, relacje i zapytania. Zastosowania: teoretyczne, sztuczna inteligencja (przetwarzanie języka naturalnego, rozpoznawanie obrazów). Języki charakterystyczne dla tego typu paradygmatu, to m.in.: Gödel (lata 70. XX wieku), Fril (lata 70. XX wieku), Prolog (lata 70. XX wieku), i inne. dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

17 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Programowanie w logice - przykład dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

18 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Programowanie w logice – przykład dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

19 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Popularność języków – index TIOBE źródło: dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

20 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Informacje Ogólne Zaliczenie ćwiczeń: kolokwium + referat Zaliczenie wykładu: test (15 pytań zamkniętych + 4 pytania otwarte) Ocena z przedmiotu: 50% ćwiczenia + 50% wykład Wykłady i Ćwiczenia na: Dyżur: pokój A327, Środa (ewentualnie po zajęciach) dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

21 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Wprowadzenie Zajecia 1 (Robert Kowalczyk) Wiadomości wstępne i przedmiocie Podział referatów dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

22 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Haskell 1 Zajęcia 2 (Robert Kowalczyk) Wprowadzenie do Haskella dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

23 Haskell 2 Zajęcia 3 Rozdział 3 Types and Typeclasses
(Chrześcijanek i Nems i Mroziewicz i Bojaczuk) Rozdział 3 Types and Typeclasses Rozdział 4 Syntax in Functions Rozdział 5 Recursion z książki Learn You a Haskell for Great Good! autorstwa Mirana Lipovaca dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

24 Haskell 3 Zajęcia 4 Rozdział 6 Higher order functions
(Kryś i Ślifirska i Erber i Guzy) Rozdział 6 Higher order functions Rozdział 7 Modules Rozdział 9 Input and Output z książki Learn You a Haskell for Great Good! autorstwa Mirana Lipovaca dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

25 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Prolog 1 Zajęcia 5 (Robert Kowalczyk) Wprowadzenie do Prologa dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

26 Prolog 2 Zajęcia 6 i 7 Rozdział 1 Tutorial Introduction
(Skoczylas i Surma i Jabłoński i Kałużyński i Kruszyna) Rozdział 1 Tutorial Introduction Rozdział 2 A Closer Look z książki Programming in Prolog autorstwa William Clocksin, Christopher S. Mellish dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

27 Prolog 2 Zajęcia 6 i 7 Rozdział 3 Using Data Structures
(Hamerski i Opitz i Blaszczyk) Rozdział 3 Using Data Structures Rozdział 4 Backtracking and the ”Cut” z książki Programming in Prolog autorstwa William Clocksin, Christopher S. Mellish dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

28 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Prolog 3 Zajęcia 6 i 7 (Kolodziej, Łuczak) Rozdział 5 Input and Output Rozdział 6 Built-in Predicates z książki Programming in Prolog autorstwa William Clocksin, Christopher S. Mellish dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

29 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Zajęcia 8 (Robert Kowalczyk) Egzamin 0 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

30 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Literatura do przedmiotu Learn You a Haskell for Great Good! Miron Lipovaca Programming in Prolog William Clocksin, Christopher S. Mellish Strony i książki poświęcone językom programowania: Haskell i Prolog dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ

31 dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ
Dziękuję za Uwagę!!! dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ


Pobierz ppt "Paradygmaty i języki programowania"

Podobne prezentacje


Reklamy Google