Plan wykładu. Języki i Paradygmaty Programowania. 1. Koncepcje i paradygmaty (2w) 4. Elementy języka Haskell (2w)
|
|
- Stanisław Piekarski
- 7 lat temu
- Przeglądów:
Transkrypt
1 Języki i Paradygmaty Programowania Przemysław Kobylański Katedra Informatyki (W/K) Politechnika Wrocławska Na podstawie: Peter Van Roy. Programowanie: Koncepcje, Techniki i Modele R. Kent Dybvig. The Scheme Programming Language Graham Hutton. Programming in Haskell Joe Armstrong. Programming Erlang. Software for a Concurrent World William Clocksin, Christopher Mellish. Prolog. Programowanie Plan wykładu. Koncepcje i paradygmaty (w). Przegląd paradygmatów na przykładzie języka Oz (w). Elementy języka Scheme (w). Elementy języka Haskell (w). Elementy języka Erlang (w). Elementy języka Prolog (w). Kolokwium
2 Literatura Peter Van Roy. Programowanie: Koncepcje, Techniki i Modele. Helion, 00. R. Kent Dybvig. The Scheme Programming Language. The MIT Press, 00. Graham Hutton. Programming in Haskell. Cambridge University Press, 00. Joe Armstrong. Programming Erlang. Software for a Concurrent World. Pragmatic Bookshelf, 0. William Clocksin, Christopher Mellish. Prolog. Programowanie. Helion, 00. Narzędzia programistyczne i materiały dostępne w sieci Mozart/Oz MIT/GNU Scheme Haskell Erlang Prolog
3 Koncepcje i paradygmaty języki paradygmaty koncepcje przegląd podstawowych koncepcji przegląd podstawowych paradygmatów Języki paradygmaty koncepcje Paradygmat paradygmat [gr. παράδειγμα = przykład, wzór] przyjęty sposób widzenia w danej dziedzinie, doktrynie itp. paradygmat programowania podstawowy styl programowania, służący jako sposób budowania struktury i elementów programu komputerowego
4 Języki paradygmaty koncepcje KONCEPCJE K K K K PARADYGMATY P P P P P P JĘZYKI PROGRAMOWANIA J J J J J J J J J J 0 J J J J koncepcja paradygmat język programowania rekord, procedura, domknięcie, unifikacja, stan, wątek, jednokrotne przypisanie, programowanie funkcyjne, programowanie imperatywne, programowanie logiczne, Oz, Scheme, ML, Haskell, C, Pascal, SNOBOL, Erlang, Prolog, OCaml, Java, Curry, SQL, Alice, AKL, Icon,
5 Języki paradygmaty koncepcje Zauważalny niedeterminizm niedeterminizm (nondeterminism) wykonanie programu nie jest w pełni zdeterminowane jego specyfikacją (np. w pewnych miejscach specyfikacja pozwala programowi wybrać co wykonywać dalej) program planujący (scheduler) podczas wykonywania wybór dalszych obliczeń dokonywany jest przez program planujący będący częścią run-time Języki paradygmaty koncepcje Zauważalny niedeterminizm wyścig lub hazard (race) kiedy wynik programu zależy od drobnych różnic w czasie wykonania różnych części programu zauważalny niedeterminizm (observable nondeterminism) kiedy można zaobserwować różne wyniki przy uruchamianiu tego samego programu na tych samych danych
6 Języki paradygmaty koncepcje Nazwany stan Expressiveness of state Less Declarative paradigms (relational and functional) unnamed, deterministic, sequential named, deterministic, sequential Imperative programming unnamed, deterministic, concurrent Deterministic concurrency named, nondeterministic, sequential Guarded command programming unnamed, nondeterministic, concurrent Concurrent logic programming More named, nondeterministic, concurrent Message-passing and shared-state concurrency Koncepcja: rekord (record) R=nazwa(pole:wartość pole:wartość polen:wartośćn) R.pole R.pole R.polen R=nazwa(:wartość :wartość n:wartośćn) R. R. R.n R=nazwa(wartość wartość wartośćn) R. R. R.n C=circle(x:0 y:0 radius:) R=rectangle(x:00 y:0 height:0 width:00)
7 Koncepcja: domknięcie (closure) Kontekst definicji Kontekst wywołania Procedura bez parametrów Koncepcja: domknięcie (closure) Kontekst definicji Kontekst wywołania Procedura z parametrami
8 Koncepcja: domknięcie (closure) declare fun {CreateAdder X} fun {Adder Y} X+Y in Adder declare F G F = {CreateAdder } G = {CreateAdder ~} {Show {F 0}#{G 0}} # Koncepcja: domknięcie (closure) (_)_ A fresh approach to technical computing (_) (_) (_) Documentation: _ _ Type "help()" for help. / _` _ (_ Version 0.. (0-0- : UTC) _/ \ '_ _ _ \ '_ Official release / x_-apple-darwin..0 julia> function create_adder(x) function adder(y) x + y adder create_adder (generic function with method) julia> add_0 = create_adder(0) adder (generic function with method) julia> add_0()
9 Koncepcja: niezależność, współbieżność (indepence, concurrency) współbieżność (concurrent) gdy dwa fragmenty programu nie są od siebie zależne ) sekwencja (sequence) gdy zadana jest kolejność wykonywania dwóch fragmentów programu równoległość (parallel) gdy dwa fragmenty programu są wykonywane jednocześnie na wielu procesorach ) Formalnie: wykonanie programu składa się z częściowo uporządkowanych zdarzeń przejść między stanami obliczeń i dwa zdarzenia są współbieżne jeśli nie ma porządku między nimi. Koncepcja: niezależność, współbieżność (indepence, concurrency) Trzy poziomy współbieżności: System rozproszony: zbiór komputerów połączonych siecią. Współbieżnym działaniem jest komputer. System operacyjny: oprogramowanie zarządzające komputerem. Współbieżnym działaniem jest proces. Działania wewnątrz procesu. Współbieżnym działaniem jest wątek (thread). Współbieżność procesów opiera się na konkurencyjności o zasoby. Współbieżność wątków opiera się na współdziałaniu i współdzieleniu zasobów.
10 Koncepcja: nazwany stan (named state, cell) nazwany stan (named state) sekwencja wartości w czasie jaką posiadała pojedyncza nazwa Komponent A Komponent B pamięć brak pamięci Koncepcja: nazwany stan (named state, cell) fun {ModuleMaker} fun {F } % Definition of F fun {G } % Definition of G in themodule(f:f g:g) M={ModuleMaker} % Creation of M {M.f } {M.g }
11 Koncepcja: nazwany stan (named state, cell) Jeśli funkcja musi policzyć ile razy była wykonana, to bez nazwanego stanu trzeba zmienić jej interfejs: fun {F Fin Fout} Fout=Fin+ A={F F F} B={F F F} C={F F F} Koncepcja: nazwany stan (named state, cell) fun {ModuleMaker} X={NewCell 0} % Create cell referenced by X fun {F } in X:=@X+ % New content of X is old plus % Original definition of F fun {G } % Definition of G fun % Return content of X themodule(f:f g:g c:count) M={ModuleMaker} % Creation of M
12 Abstrakcja danych (korzystanie z danych bez zajmowania się ich implementacją) Interface Op Op Op Outside Inside. Interfejs gwarantuje, że abstrakcja danych zawsze działa poprawnie.. Program jest prostszy do zrozumienia.. Umożliwia rozwijanie bardzo dużych programów. typ abstrakcyjny (ADT abstract data type) zbiór wartości połączony ze zbiorem operacji na tych wartościach fun {NewStack}: <Stack T> CLU B. Liskov et al. fun {Push <Stack T> T}: <Stack T> fun {Pop <Stack T> T}: <Stack T> fun {IsEmpty <Stack T>}: <Bool> fun {NewStack} nil fun {Push S E} E S fun {Pop S E} case S of X S then E=X S fun {IsEmpty S} S==nil fun {NewStack} stackempty fun {Push S E} stack(e S) fun {Pop S E} case S of stack(x S) then E=X S fun {IsEmpty S} S==stackEmpty
13 proceduralna abstrakcja danych (PDA procedural data abstraction) łączy w postaci obiektu pojęcia wartości i operacji (operacje wykonuje się poprzez wywołanie obiektu i poinformowanie go jaką czynność powinien wykonać) State Stateful Statefull ADT Pure object For example an integer Very popular Stateless Pure ADT Abstract data type (unbundled) Declarative object Object (bundled) Bunding Abstrakcja danych: polimorfizm class Figure class Circle attr x y r meth draw class Line attr x y x y meth draw class CompoundFigure attr figlist meth draw for F do {F draw}
14 Abstrakcja danych: dziedziczenie a złożenie B B Instance of Inherits from O B Instance of A Instance of A attr b: O B O A O A Inheritance Composition Paradygmat: deterministyczne programowanie współbieżne Przykład wyścigu: komórka C może zawierać albo po wykonaniu obu wątków. declare C={NewCell 0} thread C:= thread C:= niedeterminizm! Należy unikać niedeterminizmu w językach współbieżnych:. Ograniczać zauważalny niedeterminizm tylko do tych części programu, które faktycznie go wymagają.. Definiować języki tak aby było w nich możliwe pisanie współbieżnych programów bez zauważalnego niedeterminizmu.
15 Concurrent paradigm Declarative concurrency Constraint programming Functional reactive programming Discrete synchronous programming Messagepassing concurrency Races posible? Inputs can be nodeterm.? Example languages No No Oz, Alice No No Gecode, Numerica No Yes FrTime, Yampa No Yes Esterel, Lustre, Signal Yes Yes Erlang, E Paradygmat: deklaratywna współbieżność Wątki mają tylko jedną operację: {NewThread P}: tworzy nowy wątek wykonujący bezargumentową procedurę P. Zmienne przepływu danych służą synchronizacji, mogą być podstawiane tylko jeden raz i mają następujące proste operacje: X={NewVar}: tworzy nową zmienną przepływu danych. {Bind X V}: wiąże X z V, gdzie V jest wartością lub inną zmienną przepływu danych. {Wait X}: bieżący wątek czeka aż X zostanie związana z wartością.
16 Używając prostych operacji rozszerzamy operacje języka tak by czekały na dostępność swoich argumentów: proc {Add X Y Z} {Wait X} {Wait Y} local R in {PrimAdd X Y R} {Bind Z R} Tworzymy deklaratywną współbieżność leniwą przez dodanie nowej koncepcji synchronizacji przez-potrzebę (by-need synchronization): {WaitNeeded X}: bieżący wątek czeka aż któryś z wątków wykona {Wait X}. proc {LazyAdd X Y Z} thread {WaitNeeded Z} {Add X Y Z} Paradygmat: programowanie z ograniczeniami Czy istnieje prostokąt o powierzchni jednostek kwadratowych i obwodzie 0 jednostek? declare proc {Rectangle?Sol} sol(x Y)=Sol in X::# Y::# X*Y=: X+Y=:0 X=<:Y {FD.distribute naive Sol} {ExploreAll Rectangle}
17 przekazywanie ograniczeń (propagate step) jak najbardziej ogranicza rozmiar dziedzin zmiennych za pomocą propagatora propagator współbieżny agent implementujący ograniczenia. Jest aktywowany gdy zmieni się dziedzina którejkolwiek zmiennej i stara się zawęzić dziedziny zmiennych aby nie były naruszone implementowane ograniczenia. Propagatory aktywują się nawzajem poprzez współdzielone argumenty. Działają aż do osiągnięcia punktu stałego (nie są możliwe dalsze redukcje). Prowadzi to do trzech możliwości: rozwiązanie, niepowodzenie (brak rozwiązania) lub niepełne rozwiązanie.
18 strategia podziału (distribute step) dokonuje wyboru pomocniczego ograniczenia C dzielącego rozwiązywany problem P na podproblemy (P C) oraz (P C) w konsekwencji decydując p kształcie drzewa poszukiwań. Wspomniany podział dokonywany jest rekurencyjnie w każdym węźle drzewa. Zagadka kryptoarytmetyczna: S E N D + M O R E M O N E Y
19 < : s, e, n, d, m, o, r, y 0.., s>0, m>0, 0000 m (s + m o) + 00 (e + o n) + 0 (n + r e)+d + e y =0 Co można powiedzieć o zakresie dla zmiennej s? 000 s = 000 m + 00 o + 0 n e + y 0 r d Niech min..max będzie zakresem prawej strony a s0..s zakresem zmiennej s. 000 s > max! s s o..bmax/000c Na tym etapie: 000 s 0 < min! s dmin/000e..s min = 0, max =, s 0 =s =! s.. 0,000,000
20 0,000,000 0,000,000
21 0 00,000 0,0
22 0, 0,0
23 0,0 0,
24 0 0,0 0,
25 0,0 0,
26 0, 0 0
27
Plan wykładu. Literatura. Języki i Paradygmaty Programowania. Narzędzia programistyczne i materiały dostępne w sieci. 1. Koncepcje i paradygmaty (2w)
Plan wykładu Języki i Paradygmaty Programowania Przemysław Kobylański Katedra Informatyki (W/K) Politechnika Wrocławska Na podstawie: Peter Van Roy. Programowanie: Koncepcje, Techniki i Modele R. Kent
Języki programowania do zastosowań biomedycznych
Języki programowania do zastosowań biomedycznych Prowadzący Witold Dyrka Agnieszka Kazimierska Michał Placek Założenia Państwo: mają uporządkowaną, podbudowaną teoretycznie wiedzę ogólną obejmującą kluczowe
Paradygmaty i języki programowania. Wprowadzenie. dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ 1
Paradygmaty i języki programowania Wprowadzenie Nieliniowej, WMiI UŁ 1 Czym jest paradygmat? Paradygmat to przyjęty sposób widzenia rzeczywistości w danej dziedzinie, doktrynie itp. Zespół form fleksyjnych
Języki i paradygmaty programowania. I. Wprowadzenie
Języki i paradygmaty programowania I. Wprowadzenie O źródłach wykład został przygotowany w ogromnej części w oparciu o serwis http://wazniak.mimuw.edu.pl/ (zgodnie z licencją serwisu) inne źródła: Wikipedia:
Informatyka II stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)
KARTA MODUŁU / KARTA PRZEDMIOTU Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. Kod modułu Nazwa modułu Programowanie imperatywne, obiektowe i deklaratywne Nazwa modułu w języku
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
Programowanie Obiektowe i C++ Marcin Benke
Programowanie Obiektowe i C++ Marcin Benke Dzisiaj Co umiemy Paradygmaty programowania Co będzie na wykładach Zasady zaliczania Programowanie obiektowe Co umiemy Programowałem w C++ Programowałem w języku
Plan wykładu. Języki i Paradygmaty Programowania. 1. Koncepcje i paradygmaty (2w) 4. Elementy języka Haskell (2w)
Języki i Paradygmaty Programowania Przemysław Kobylański Katedra Informatyki (W11/K2) Politechnika Wrocławska Na podstawie: Peter Van Roy. Programowanie: Koncepcje, Techniki i Modele R. Kent Dybvig. The
Programowanie Obiektowe i C++
Programowanie Obiektowe i C++ Marcin Benke 2.10.2006 Dzisiaj Co umiemy Paradygmaty programowania Co będzie na wykładach Zasady zaliczania Programowanie obiektowe Co umiemy Programowałem w C++ Programowałem
Wykład 1 Informacje Podstawowe
Paradygmaty i języki programowania Wykład 1 Informacje Podstawowe Nieliniowej, WMiI UŁ 1 Czym jest paradygmat? Paradygmat to przyjęty sposób widzenia rzeczywistości w danej dziedzinie, doktrynie itp. Zespół
Paradygmaty i języki programowania. Wprowadzenie. dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ 1
Paradygmaty i języki programowania Wprowadzenie Nieliniowej, WMiI UŁ 1 Czym jest paradygmat? Paradygmat to przyjęty sposób widzenia rzeczywistości w danej dziedzinie, doktrynie itp. Zespół form fleksyjnych
Wykład 1 Informacje Podstawowe
Paradygmaty i języki programowania Wykład 1 Informacje Podstawowe Nieliniowej, WMiI UŁ 1 Czym jest paradygmat? Paradygmat to przyjęty sposób widzenia rzeczywistości w danej dziedzinie, doktrynie itp. Zespół
Paradygmaty programowania
Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów
Programowanie współbieżne i rozproszone
Programowanie współbieżne i rozproszone WYKŁAD 1 dr inż. Literatura ogólna Ben-Ari, M.: Podstawy programowania współbieżnego i rozproszonego. Wydawnictwa Naukowo-Techniczne, Warszawa, 2009. Czech, Z.J:
Wykład 0 Informacje Podstawowe
Paradygmaty Programowania Wykład 0 Informacje Podstawowe Nieliniowej, WMiI UŁ 1 Informacje Ogólne (22 luty 2013) Wykłady: piątek, 10.00-12.00, D103 Wykłady: 1 wprowadzający +10 wykładów głównych Zaliczenie
PRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: obowiązkowy w ramach treści kierunkowych, moduł kierunkowy ogólny Rodzaj zajęć: wykład, laboratorium I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK
Programowanie deklaratywne
Języki i paradygmaty programowania Lista (elementy języka Oz) Przemysław Kobylański Zaprogramuj w języku Oz rozwiązania poniższych zadań. Na ocenę dostateczną trzeba rozwiązać wszystkie zadania bez gwiazdek.
Paradygmaty programowania
Wg. J. Bylina, B. Bylina Przegląd języków i paradygmatów programowania, UMCS, Lublin 2011 Paradygmaty programowania Paradygmat (gr. Paradeigma) - wzorzec lub przykład Def. słownikowa: przyjęty sposób widzenia
Wstęp do programowania 2
Wstęp do programowania 2 wykład 10 Zadania Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Współbieżność dotychczasowe programy wykonywały akcje sekwencyjnie Ada umożliwia
Programowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne
Programowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne dr inż. Marcin Szlenk Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych m.szlenk@elka.pw.edu.pl Paradygmaty
Programowanie obiektowe
Wykład 1 21 lutego 2019 Plan wykładu 1 Opis wykładu Zaliczenie i egzamin Literatura 2 3 Modelowanie obiektowe Abstrakcja Hermetyzacja Dziedziczenie Polimorfizm 4 Opis wykładu Zaliczenie i egzamin Literatura
Algorytmy i Struktury Danych
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Algorytmy i Struktury Danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 12: Wstęp
procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak
Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Abstrakcja programowania współbieżnego Instrukcje atomowe i ich przeplot Istota synchronizacji Kryteria poprawności programów współbieżnych
Programowanie w języku C++ Podstawowe paradygmaty programowania
Programowanie w języku C++ Podstawowe paradygmaty programowania Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra
4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24
Wymagania proceduralnych języków wysokiego poziomu ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe procesorów ASK MP.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad.
Programowanie obiektowo zorientowane. Mirosław Głowacki Wykład w języku C++
Programowanie obiektowo zorientowane Mirosław Głowacki Wykład w języku C++ Literatura B. Meyer, Programowanie zorientowane obiektowo, Helion Gliwice, 2005 J. Grębosz, Symfonia C++ Standard, Oficyna Kallimach,
Programowanie obiektowe - 1.
Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która
GUI - projektowanie interfejsów cz. II
Katedra Inżynierii Wiedzy, Uniwersytet Ekonomiczny w Katowicach Wykład 2 Java Foundations Classes przyciski; pola tekstowe; panele; okna dialogowe; biblioteka Swing. Metodyka (paradygmat) programowania
PRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: PROGRAMOWANIE WSPÓŁBIEŻNE I ROZPROSZONE I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK PO PRZEDMIOCIE C1. Uzyskanie przez studentów wiedzy na temat architektur systemów równoległych i rozproszonych,
Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.
Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to
Metody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/
Języki programowania deklaratywnego
Katedra Inżynierii Wiedzy laborki 1 e-mail: przemyslaw.juszczuk@ue.katowice.pl Konsultacje: na stronie katedry + na stronie domowej Pokój 202c budynek A pjuszczuk.pl Języki deklaratywne - laborki Wprowadzenie
Wykład 1 Informacje Podstawowe
Paradygmaty i języki programowania Wykład 1 Informacje Podstawowe Czym jest paradygmat? Paradygmat to przyjęty sposób widzenia rzeczywistości w danej dziedzinie, doktrynie itp. Zespół form fleksyjnych
problem w określonym kontekście siły istotę jego rozwiązania
Wzorzec projektowy Christopher Alexander: Wzorzec to sprawdzona koncepcja, która opisuje problem powtarzający się wielokrotnie w określonym kontekście, działające na niego siły, oraz podaje istotę jego
Aplikacje w Javie- wykład 11 Wątki-podstawy
1 Aplikacje w Javie- wykład 11 Wątki-podstawy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/ http://docs.oracle.com/javase/9/docs/
JAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Programowanie współbieżne Wykład 7. Iwona Kochaoska
Programowanie współbieżne Wykład 7 Iwona Kochaoska Poprawnośd programów współbieżnych Właściwości związane z poprawnością programu współbieżnego: Właściwośd żywotności - program współbieżny jest żywotny,
WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy
WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy Pojęcie klasy Program napisany w języku Java składa się ze zbioru klas. Każda klasa zawiera
Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017
Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017 1 Wzorce podstawowe 1.1 Interface vs Abstract class class InterfaceAbstractClass
ξ II.UWr Wprowadzenie do STM
ξ KS @.UWr Wprowadzenie do STM Marek Materzok ZOSA 2007 ξ KS @.UWr Wprowadzenie Były sobie komputery. Wykonywały programy instrukcja po instrukcji i wszyscy byli szczęśliwi... ξ KS @.UWr Wprowadzenie Były
Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)
Zagadnienia (1/3) Rola modelu systemu w procesie analizy wymagań (inżynierii wymagań) Prezentacja różnego rodzaju informacji o systemie w zależności od rodzaju modelu. Budowanie pełnego obrazu systemu
Nowoczesne technologie przetwarzania informacji
Projekt Nowe metody nauczania w matematyce Nr POKL.09.04.00-14-133/11 Nowoczesne technologie przetwarzania informacji Mgr Maciej Cytowski (ICM UW) Lekcja 2: Podstawowe mechanizmy programowania równoległego
Nazwa Wydziału Nazwa jednostki prowadzącej moduł Nazwa modułu kształcenia Kod modułu Język kształcenia Efekty kształcenia dla modułu kształcenia
Nazwa Wydziału Nazwa jednostki prowadzącej moduł Nazwa modułu kształcenia Kod modułu Język kształcenia Efekty kształcenia dla modułu kształcenia Wydział Matematyki i Informatyki Instytut Informatyki i
Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.
Wstęp Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system. Przedstawienie architektur sprzętu wykorzystywanych do
Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W E, 2L PRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: PROGRAMOWANIE ROZPROSZONE I RÓWNOLEGŁE Distributed and parallel programming Kierunek: Forma studiów: Informatyka Stacjonarne Rodzaj przedmiotu: moduł specjalności obowiązkowy: Sieci komputerowe
CLP Programowanie logiczne z ograniczeniami.
CLP Programowanie logiczne z ograniczeniami. Wstęp Programowanie z ograniczeniami (Constraint Programming CP) stało się w ostatnich latach popularnym sposobem modelowania i rozwiązywania wielu problemów
JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.
JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod
Technologie i usługi internetowe cz. 2
Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,
Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303
Wykład 9 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303 stos i operacje na stosie odwrotna notacja polska języki oparte na ONP przykłady programów J. Cichoń, P. Kobylański Wstęp
Programowanie obiektowe. Wprowadzenie
1 Programowanie obiektowe Wprowadzenie 2 Programowanie obiektowe Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
Programowanie Niskopoziomowe
Programowanie Niskopoziomowe Wykład 11: Procedury zaawansowane Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Ramki stosu Rekurencja INVOKE, ADDR, PROC,
Wykład 1 Wiadomości wstępne
Paradygmaty Programowania Wykład 1 Wiadomości wstępne Nieliniowej, WMiI UŁ 1 Czym jest paradygmat? Paradygmat to przyjęty sposób widzenia rzeczywistości w danej dziedzinie, doktrynie itp. Zespół form fleksyjnych
Język Java część 2 (przykładowa aplikacja)
Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa
Programowanie w logice
Programowanie w logice PROLOG cz.1 PROLOG język wysokiego poziomu Powstał w 1972 na Uniwersytecie w Marsylii (Francja) w zespole A.Colmerauer a i F.Roussel a PROgrammation en LOGique, PROgramming in LOGic,
Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki
Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład V Rzut okiem na języki programowania 1 Kompilacja vs. interpretacja KOMPILACJA Proces, który przetwarza program zapisany w języku programowania,
Współbieżność w środowisku Java
Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych
Podstawy programowania funkcjonalnego
Podstawy programowania funkcjonalnego haskell.mariuszrozycki.pl Mariusz Różycki Churchill College, University of Cambridge rev. 2014.03.27.1 Wprowadzenie Materiały haskell.mariuszrozycki.pl Slajdy (w tym
Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
Lock Manager Deadlock Źródła Jak starczy czasu. Dreadlocks. Konrad Błachnio MIMUW 19 maja 2010
Konrad Błachnio K.Blachnio@students.mimuw.edu.pl MIMUW 19 maja 2010 1 Co to jest? API Implementacja 2 ILockManagerWithDetecting s - straszny zamek 3 4 Obecna implementacja Lock vs. Synchronized Hashtable
Programowanie komputerów
Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych
Wstęp do informatyki Paradygmaty programowania
Czym jest paradygmat Wstęp do informatyki Paradygmaty programowania Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Paradygmat to przyjęty sposób widzenia
Wstęp do Programowania potok funkcyjny
Wstęp do Programowania potok funkcyjny Marcin Kubica 2016/2017 Outline Moduły i bariery abstrakcji 1 Moduły i bariery abstrakcji Moduły co to jest i po co to jest? Duży system dzielimy na mniejsze, łatwiejsze
Technologia Programowania 2016/2017 Wykład 5
Technologia Programowania 2016/2017 Wykład 5 Wzorce GoF Jakub Lemiesz Wzorce GoF Kreacyjne Builder Singleton Simple Factory Factory Method Abstract Factory Prototype Strukturalne Adapter Decorator Proxy
Paradygmaty Programowania dr inŝ. Cezary Bolek
Kontakt Paradygmaty Programowania dr inŝ. Cezary Bolek email: cbolek@ki.uni.lodz.pl Katedra Informatyki Wydział Zarządzania Uniwersytet Łódzki Cezary Bolek Katedra Informatyki UŁ konsultacje (p.142): wtorek:
Jerzy Nawrocki, Wprowadzenie do informatyki
Jerzy Nawrocki, Jerzy Nawrocki Wydział Informatyki Politechnika Poznańska jerzy.nawrocki@put.poznan.pl Kryzys oprogramowania Struktury danych i inżynieria oprogramowania Przekraczanie terminów Przekraczanie
Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści
Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop. 2016 Spis treści Przedmowa 1 Stosowana notacja 1 1. Wprowadzenie 3 1.1. Konsola interaktywna języka Scala 3 1.2. Zmienne 5 1.3. Wartości
Programowanie obiektowe
Programowanie obiektowe Laboratorium 10 - klasy abstrakcyjne i interfejsy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 17 maja 2017 1 / 13 mgr inż. Krzysztof Szwarc Programowanie obiektowe
Definicje. Algorytm to:
Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi
Wstęp do programowania
Wstęp do programowania Programowanie funkcyjne Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XIV Jesień 2013 1 / 25 Paradygmaty programowania Programowanie imperatywne Program
Programowanie współbieżne i rozproszone
Programowanie współbieżne i rozproszone WYKŁAD 11 dr inż. CORBA CORBA (Common Object Request Broker Architecture) standard programowania rozproszonego zaproponowany przez OMG (Object Management Group)
4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Wstęp do Programowania potok funkcyjny
Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline Programowanie imperatywne 1 Programowanie imperatywne Intuicje Programowanie imperatywne Paradygmat programowania imperatywnego: program
Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski
Adapter: opis Wzorce Strukturalne Tomasz Borzyszkowski Alternatywna nazwa: Wrapper (opakowanie) Rola obiektu Adapter: pełni wobec Klienta rolę otoczki, która umożliwia przetłumaczenie jego żądań na protokół
Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ
Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu
Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279
Wykład 8 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279 sformułowanie problemu przegląd drzewa poszukiwań przykłady problemów wybrane narzędzia programistyczne J. Cichoń, P. Kobylański
Języki programowania imperatywnego
Katedra Inżynierii Wiedzy laborki 1 e-mail: przemyslaw.juszczuk@ue.katowice.pl Konsultacje: na stronie katedry + na stronie domowej Pokój 202c budynek A pjuszczuk.pl Języki imperatywne Wykład - 15 godzin;
Technologie cyfrowe semestr letni 2018/2019
Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk Wykład 7 (08.04.2019) Wikipedia Programowanie komputerów proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów
Podstawy języka UML2 w realnych projektach
Kod szkolenia: Tytuł szkolenia: UML2/RP Podstawy języka UML2 w realnych projektach Dni: 3 Opis: Adresaci Szkolenia: Szkolenie adresowane jest do osób, które chciałby poznać podstawy UML2. Przede wszystkim
Podstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej
Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma
Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -
Nazwa modułu: Programowanie obiektowe Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3 Wydział: Zarządzania Kierunek: Informatyka i Ekonometria Specjalność: - Poziom studiów: Studia I stopnia
Adam Meissner SZTUCZNA INTELIGANCJA
Instytut Automatyki i Inżynierii Informatycznej Politechniki Poznańskiej Adam Meissner Adam.Meissner@put.poznan.pl http://www.man.poznan.pl/~ameis SZTUCZNA INTELIGANCJA Podstawy programowania z ograniczeniami
Java: interfejsy i klasy wewnętrzne
Java: interfejsy i klasy wewnętrzne Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 INTERFEJSY Interfejs to opis co klasa implementująca dany interfejs powinna robić, ale bez określania
SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017
Załącznik nr 4 do Uchwały Senatu nr 430/01/2015 SYLABUS DOTYCZY CYKLU KSZTAŁCENIA 2014-2018 realizacja w roku akademickim 2016/2017 1.1. PODSTAWOWE INFORMACJE O PRZEDMIOCIE/MODULE Nazwa przedmiotu/ modułu
Historia modeli programowania
Języki Programowania na Platformie.NET http://kaims.eti.pg.edu.pl/ goluch/ goluch@eti.pg.edu.pl Maszyny z wbudowanym oprogramowaniem Maszyny z wbudowanym oprogramowaniem automatyczne rozwiązywanie problemu
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki zaprojektowany jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych jest to język pozwalający na programowanie zarówno proceduralne
Programowanie obiektowe Wykład 1. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 O mnie prowadzący wykład: Dariusz Wardowski pokój: A334 dyżur: środa, godz. 10.00 12.00 e-mail: wardd@math.uni.lodz.pl
Szablony funkcji i szablony klas
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument
Język Java część 2 (przykładowa aplikacja)
Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa
Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1
Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1 Zofia Kruczkiewicz 1 Zunifikowany iteracyjno- przyrostowy proces tworzenia oprogramowania kiedy? Przepływ działań Modelowanie przedsiębiorstwa
Wykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Niezawodne Systemy Informatyczne
Niezawodne Systemy Informatyczne Przemysław Kobylański Katedra Informatyki (W11/K2) Politechnika Wrocławska Na podstawie J.W. McCormick, P.C. Chapin. Building High Integrity Applications SPARK K.R. Apt,
Programowanie Współbieżne
Programowanie Współbieżne Agnieszka Łupińska 5 października 2016 Hello World! helloworld.cu: #include global void helloworld(){ int thid = (blockidx.x * blockdim.x) + threadidx.x; printf("hello
KARTA PRZEDMIOTU. Języki i paradygmaty programowania C7. Programming languages and paradigms
KARTA PRZEDMIOTU 1. Informacje ogólne Nazwa przedmiotu i kod (wg planu studiów): Nazwa przedmiotu (j. ang.): Kierunek studiów: Specjalność/specjalizacja: Poziom kształcenia: Profil kształcenia: Forma studiów:
Enkapsulacja, dziedziczenie, polimorfizm
17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,
Wstęp do programowania
Wstęp do programowania Literatura David Harel. Rzecz o istocie informatyki. Algorytmika. Wydawnictwa Naukowo-Techniczne. Wydanie trzecie. Seria: Klasyka informatyki. Warszawa 2000. Niklaus Wirth. Algorytmy
Technologie informacyjne - wykład 12 -
Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski
Materiały do zajęć VII
Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja