Clojure. Obca technologia wśród nas. Filip Koczorowski. luty 2010

Wielkość: px
Rozpocząć pokaz od strony:

Download "Clojure. Obca technologia wśród nas. Filip Koczorowski. luty 2010"

Transkrypt

1 Clojure Obca technologia wśród nas Filip Koczorowski luty 2010 Historia tej prezentacji zaczyna się kilka miesięcy temu. Rozmawiałem z Adamem Dudczakiem w październiku 2009 roku o tym, że ewentualnie mógłbym poprowadzić prelekcję na JUG. Z kilku moich propozycji tematów najbardziej zainteresował go ten o Clojure. Skomentował go słowami "to byłoby fajne, programowanie funkcjonalne to teraz gorący temat". Grzecznie pokiwałem głową, chociaż później stwierdziłem, że to nie do końca jest tak.

2 Co to jest Clojure? funkcyjny dynamiczny działający na JVM również na CLR Rzeczywiście, Clojure jest wręcz sztandarowym przykładem języka ze zdobywającego ostatnio popularność nurtu programowania funkcyjnego. Używa silnej i dynamicznej kontroli typów, co również jest popularnym motywem. To wszystko oferuje będąc językiem działającym na wirtualnej maszynie Javy. Posiada daleko posuniętą dwukierunkową integrację z kodem pisanym w języku Java i jest zgodny z tak napisanym kodem na poziomie Java bajtkodu. Jest jednak coś jeszcze, nad czym nie sposób przejść tak po prostu do porządku dziennego...

3 Co to jest Clojure? język należący do rodziny Lisp Clojure należy mianowicie do rodziny języków Lisp (dokładniej jest oparty na Lisp-1, co czyni go trochę podobnym do języka Scheme). Z faktu bycia Lisp'em wywodzi się wrażenie obcości Clojure, zupełnie jakby nie pochodził z naszej planety. Różni się on znacząco od popularnych języków takich jak C, Java, Python, Basic itd. Zaakceptowanie jego odmienności może być trudne, ale jednocześnie bardzo satysfakcjonujące i opłacalne.

4 Więc czym jest Clojure? Można więc scharakteryzować Clojure jako dynamiczny język programowania ogólnego przeznaczenia, działający na platformie JVM. Jest to na dodatek język funkcyjny z niemodyfikowalnymi danymi. O tym co to oznacza będzie za chwilę. Jest to wreszcie jeden z dialektów Lisp i od tego zaczniemy.

5 Lisp - żywy dinozaur wynaleziony w 1958 r. Język Lisp wynalazł prof. John McCarthy z MIT ponad pół wieku temu (10 lat przed tym jak człowiek stanął na Księżycu). Zdjęcie przedstawia autentyczną maszynę - IBM 704 z 1954r. na której pierwsza wersja Lisp została uruchomiona. W kategoriach informatycznych tak odległe czasy to chwila po Wielkim Wybuchu. A może to właśnie wynalezienie Lisp spowodowało Wielki Wybuch?

6 Lisp miał to wcześniej instrukcję warunkową funkcje jako wartości dynamiczną kontrolę typów rekurencję odśmiecanie pamięci program jako modyfikowalną strukturę drzewiastą w pamięci Wspomniany Wielki Wybuch uznawany jest za początek wszystkiego. Podobnie Lisp. Oto niektóre, najważniejsze innowacje, które właśnie w Lisp pojawiły się jako pierwsze. Część z nich może znacie ze innych języków programowania. Liczba tych innowacji jest naprawdę bardzo długa i co ciekawe, ostatnia pozycja z tej listy ciągle nie została w pełni zaadoptowana w innych językach.

7 Lisp potrafi się dostosować początkowy brak OOP własna innowacyjna implementacja OOP oparta o tzw. multimetody Warto też zauważyć, że Lisp nie tylko wprowadzał, ale także chłonął pomysły. Słynna rewolucja programowania zorientowanego obiektowo (Object Oriented Programming) przyszła do rodziny języków Lisp trochę później niż do innych. Wyjątkowo dobrze zintegrowana została jednak z samym językiem i obecnie stanowi jeden z podstawowych sposobów implementacji modelu OOP w języku programowania.

8 Lisp - cechy wiele odmian LISt Processing wyrażenia symboliczne tekstowa reprezentacja listy (struktury danych) ang. symbolic expression w skrócie sexp :) O całej rodzinie języków Lisp można powiedzieć dwie rzeczy: jest ich wiele, a wszystkie łączy posiadanie tzw. wyrażeń symbolicznych. Te skrótowo nazywane s-wyrażenia, lub w oryginale s-expressions, to tekstowa reprezentacja strukturyzowanych danych w postaci listy. Stąd pochodzi nazwa Lisp - List Processing.

9 Wyrażenia symboliczne (length (list )) Skąd pomysł, żeby wszystko traktować jako listę? Powody były bardzo ważne i tajemnicze, a szczegóły giną już w mroku dziejów... Tak naprawdę to znaczy, że nie wiem skąd pomysł się wziął, ale ma istotną konsekwencję: kod i dane mają taką samą reprezentację w języku Lisp. I oczywiście reprezentacją tą jest lista.

10 Wyrażenia symboliczne (length (list )) instrukcja dane Skoro jednak kod i dane to to samo, jak odróżnić jedno od drugiego? Stosowana jest prosta zasada - pierwszy element listy traktowany jest jako instrukcja do wykonania.

11 Wyrażenia symboliczne (length (list )) instrukcja dane Skoro jednak kod i dane to to samo, jak odróżnić jedno od drugiego? Stosowana jest prosta zasada - pierwszy element listy traktowany jest jako instrukcja do wykonania.

12 S-wyrażenia <property name="build" location="build/classes" /> <mkdir dir="${build}" /> Jeśli dla kogoś pomysł z unifikacją kodu i danych wydaje się zbyt abstrakcyjny, warto sięgnąć po bardziej znajomy przykład. Apache Ant. Bardzo użyteczne narzędzie. Instrukcje Ant mają postać pliku XML. Sam XML z kolei uznawany jest za format zapisu danych. I rzeczywiście, w skrypcie Ant typowe instrukcje mieszają się z typowymi danymi, a zapis jednych od drugich wiele się nie różni.

13 S-wyrażenia <property name="build" location="build/classes" /> (def build "build/classes") <mkdir dir="${build}" /> (mkdir build) Analogicznie zapisany skrypt Lisp wyglądałby tak. Nie różni się specjalnie od XMLowego zapisu, który stosuje Ant. W praktyce jednak, Ant nie idzie tak daleko jak Lisp w wykorzystaniu faktu, że instrukcje i dane mają tą samą reprezentację. Lisp pozwala bowiem programom operować na kodzie programów. Stąd popularne określenie Lisp jako "programowalnego języka programowania".

14 S-wyrażenia <property name="build" location="build/classes" /> (def build "build/classes") <mkdir dir="${build}" /> (mkdir build) Na tym slajdzie wyróżniłem wyjątkowo dla Lisp charakterystyczne nawiasy. To nie przypadek, że faktycznie każdy program w Lisp je zawiera. Dlaczego?

15 Lisp - składnia () Bo stanowią jedyny stały element składni języka Lisp. Nawiasem mówiąc, normalnie jestem przeciwny zamęczaniu wyliczaniem wszystkich elementów składniowych języka na prezentacjach, ale tu zrobiłem wyjątek.

16 REPL Read Evaluate Print Loop R E P Każdy element s-wyrażenia jest obliczany. Lisp działa etapowo, jak silnik trójsuwowy. Pierwszy suw to wczytanie (Read). Wczytany tekst jest obliczany w drugim suwie (Evaluate). W trzecim suwie wyliczona wartość jest zwracana jako tekst, np. do wyświetlenia (Print). I cały cykl pracy jest powtarzany (Loop). Ten tryb działania pozwala na interaktywną pracę z programem, czyli coś co oferują np. Ruby ze swoim IRB, Python, Scala itd. Tu ciekawostka - w wielu przypadkach takie interaktywne konsole w innych językach są nazywane "REPL". Kluczową rzeczą jest tutaj fakt, że Read i Print operują na takim samym formacie czystego tekstu, który może, ale wcale nie musi pochodzić z pliku z kodem źródłowym.

17 REPL Read Evaluate 1. macro expand 2. evaluate Print Loop Tak naprawdę to suw pracy (Evaluate) składa się z dwóch etapów. Przed właściwym obliczeniem wartości występuje etap rozwinięcia makr.

18 Makra tylko z pozoru takie jak w C ten sam język co właściwy kod kod piszący kod (który pisze kod, który pisze...) rozszerzalność języka dynamiczność języka Makra w Lisp to niesłychanie potężne narzędzie. Niestety nazywają się tak samo, jak mechanizm stosowany w języku C. Tymczasem makro z Lisp ma się do makra z C tak, jak krzesło do krzesła elektrycznego. Lisp jako jedyny ma mechanizm makr, który operuje na tym samym językiem i konstrukcjami składniowymi co reszta kodu. W praktyce pozwala to na niespotykaną nigdzie indziej dynamiczność języka i niemal nieskończoną rozszerzalność (patrz wcześniejszy slajd "Lisp potrafi się dostosować"). Właśnie ta funkcjonalność Lisp pozwoliła mu na przetrwanie od lat 60. ubiegłego wieku aż do dzisiaj.

19 Makra Lisp Java 5 możliwość dodania własnej konstrukcji pętli możliwość dodania dowolnej innej konstrukcji językowej dodana nowa, wygodna pętla "for"??? Makra to temat rzeka. Nie chcę przeciągać tej prezentacji w nieskończoność, podam więc jeden przykład użyteczności mechanizmu makr. W składni języka Java w wersji 5 pojawiła się bardzo długo wyczekiwana i wygodna w użyciu pętla "for" do iterowania po elementach kolekcji. Miliony programistów odetchnęło z ulgą. Nie musieliby jednak na nią czekać, gdyby ich język programowania pozwalał na tworzenie nowych konstrukcji językowych, tak jak w Lisp.

20 I wreszcie Clojure wszystko co wcześniej plus trochę więcej składni orientacja na funkcje działanie na JVM ułatwienia dla aplikacji wielowątkowych Prezentacja miała dotyczyć języka Clojure, więc czas przejść do Clojure. Właściwie wszystko to, o czym mówiłem do tej pory ma przełożenie na Clojure, bo jest to Lisp. Dodatkowe cechy wymieniłem tutaj i zaraz je omówię.

21 Clojure - składnia ("typowa dla Lisp" "lista") ["wektor" "czyli" "jak tablica"] {:tablica "asocjacyjna"} #{"zbiór" "różnych" "elementów"} Obowiązkową dla Lisp składnię dla list Clojure rozszerza o wygodną składnię definiowania wektorów (czyli z grubsza tradycyjnych tablic), tablic asocjacyjnych (zwanych czasami mapowaniami) i zbiorów. Odpowiedniki tych typów w języku Java to LinkedList, ArrayList, Map, Set.

22 Clojure - składnia \tab "String" ; komentarz do końca linii #"wyrażenie regularne" A oto kilka kolejnych elementów składniowych języka Clojure.

23 Clojure - składnia \tab (char \unr_w_unicode) "String" (str \S \t \r \i \n \g) ; komentarz do końca linii (comment "jakiś tekst") #"wyrażenie regularne" (re-pattern "wyrażenie regularne") Pokazane tu elementy składniowe nie są w tym momencie jednak istotne same w sobie. Co jest ważne, to fakt, że każdy z pokazanych tu elementów, za pomocą tzw. makra czytającego, uruchamianego podczas suwu READ w REPL, jest transformowany do standardowego s-wyrażenia.

24 Clojure - funkcyjny funkcje jako: wartości i kolejny typ danych element zwracany z innych funkcji i przekazywany jako parametr niezmienne (niemodyfikowalne) struktury danych Clojure to tzw. język funkcyjny, albo inaczej "zorientowany na funkcje". W praktyce wynikają z tego dwie podstawowe cechy. Po pierwsze, funkcje są pełnoprawnymi danymi, które można zwracać jako wynik działania innych funkcji, albo przekazywać jako parametry wywołania. Po drugie, wszystkie struktury danych w Clojure są niezmienne. To tak, jakby np. w języku Java każda zmienna była "final".

25 Clojure - na JavaVM kompilowany do bajtkodu "lukier składniowy" (import '(javax.swing JFrame JButton)) (let [frame (JFrame. "Test!") do-button (JButton. "Start")] (doto frame (.add do-button) (.setsize ) (.setvisible true))) Clojure jest też pełnoprawnym językiem platformy Java Virtual Machine. A to dlatego, że programy napisane w Clojure są kompilowane do bajtkodu Java. Clojure "pod maską" używa standardowych typów i pasujących klas języka Java (np. funkcje reprezentowane są przez obiekty implementujące interfejsy Runnable i Callable). Aby załagodzić ból korzystania z niekiedy barokowych konstrukcji i bibliotek języka Java, Clojure daje tzw. lukier składniowy. Ułatwia on typowe zadania, takie jak importowanie typów, czy ustawianie właściwości obiektu.

26 Clojure - wielowątkowość funkcyjny charakter to pewniejsza podstawa do programowania współbieżnego Czas teraz na główne danie w menu - język funkcyjny Clojure jako lepsza baza dla tworzenia programów działających wielowątkowo. Jest kilka dużych zalet podejścia zorientowanego na funkcje w kontekście programowania współbieżnego.

27 Clojure - wielowątkowość funkcja matematyczna zawsze zwraca ten sam wynik dla tych samych danych można je wykonywać równolegle łatwiej ją testować naturalna modularność programu Pierwsza zaleta języków funkcyjnych to cecha funkcji w sensie matematycznym. Zawsze zwracają ten sam wynik dla tych samych danych wejściowych i z zasady ich wykonanie nie wpływa na wykonanie innych funkcji w tym samym czasie. To znaczy że nie ma przeszkód, żeby wykonywać wiele funkcji równolegle. Dodatkowo, funkcje łatwiej testować, bo nie potrzeba martwić się o kontekst wywołania (stan obiektu itp.). Wreszcie podejście funkcyjne w naturalny sposób powoduje, że program powstaje modularnie. Drobne funkcje wykonujące jedną rzecz, łączy się w bardziej złożone, te w jeszcze bardziej złożone, aż w końcu gotowa aplikacja pojawia się niemal sama.

28 Clojure - wielowątkowość wywołanie funkcji z różnych wątków jest bezpieczne w językach czysto funkcyjnych - zawsze Clojure nie jest czysto funkcyjny...ale wiele mu nie brakuje Funkcję można wykonywać bezpiecznie w różnych wątków, ponieważ z zasady nie modyfikuje globalnego stanu. To druga duża zaleta języków funkcyjnych. Jednocześnie jest to jednak ograniczenie. Bo modyfikowanie globalnego stanu, czyli np. wypisanie czegoś do pliku, czasami się przydaje. W językach czysto funkcyjnych, takich jak Haskell, reguła ta jest przestrzegana. Clojure nie jest aż tak dogmatyczny, jednak ilość miejsc potencjalnie niebezpiecznych jest ograniczona do minimum.

29 Clojure - wielowątkowość pamięć transakcyjna (ang. Software Transactional Memory ) zasada dostępu z baz danych synchroniczny dostęp do danej współdzielonej w ramach transakcji dostęp jest atomowy, spójny oraz izolowany (ACI) Poza podejściem funkcyjnym, Clojure jest przyjazny dla programów wielowątkowych na kilka innych sposobów. Software Transactional Memory (STM) to pomysł na wykorzystanie zasady dostępu do współdzielonego zasobu, znanego z systemów baz danych. Tam nikt nie widzi nic dziwnego w tym, że tysiące równoczesnych żądań dostępu do np. pojedynczej krotki tabeli nie powoduje zawieszenia aplikacji, a każde z tych żądań zostaje obsłużone. Używa się tam skrótu ACID, który znaczy że każdy dostęp jest atomowy, spójny, izolowany i trwały. STM w Clojure gwarantuje trzy pierwsze cechy.

30 Clojure - wielowątkowość agenci przekazywanie danych przez komunikaty (ang. message passing concurrency ) zasada dostępu stosowana w językach Erlang, Scala asynchroniczny i niezależny dostęp danej współdzielonej Autor Clojure, Rich Hickey, stwierdził że obecnie STM oraz inne metodyki mające rozwiązać problem pewnego programowania współbieżnego nie są dostatecznie zweryfikowane w praktyce. Dlatego zaproponował wiele takich metodyk na raz w Clojure. STM dotyczy sytuacji dostępu synchronicznego. Dla sytuacji, kiedy potrzebny jest dostęp asynchroniczny, dostępny jest mechanizm tzw. agentów. W największym skrócie to mechanizm przekazywania asynchronicznych komunikatów między niezależnymi wątkami.

31 Clojure - wielowątkowość atomy synchroniczny i niezależny dostęp danej współdzielonej dana to jeden z niemodyfikowalnych typów Clojure modyfikacji ulega referencja na "atom", a nie "atom" (dane) sam w sobie Agenci sprawdzają się, kiedy dostęp do współdzielonych danych powinien być asynchroniczny. Czasami jednak potrzebna jest synchronizacja dostępu i wtedy do dyspozycji Clojure daje nam mechanizm tzw. atomów.

32 Clojure - wielowątkowość dostęp do współdzielonych synchroniczny danych skoordynowany niezależny asynchroniczny - STM atomy agenci Te trzy różne mechanizmy składają się na kompletny zestaw narzędzi programowania współbieżnego.

33 Clojure - co zapamiętać? Clojure to język funkcyjny z rodziny Lisp działający na platformie JavaVM programowalny język programowania z bardzo rozbudowanym wsparciem dla współbieżności I wreszcie dochodzimy do podsumowania. Wymieniłem tutaj rzeczy, które trzeba zapamiętać z tej prezentacji. Dołożyłbym do tego jeszcze krótką informację - Clojure już jest używany w praktyce, chociaż naturalnie nie sposób nazwać języka Clojure popularnym. Portal jest napisany w Clojure.

34 Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot. - Eric Steven Raymond Powstaje jeszcze na koniec pytanie czy warto poznać Clojure? Moja odpowiedź jest oczywista - tak. A na pytanie "dlaczego?", mogę zacytować Erica Raymonda, znanego chociażby z artykułu "the Cathedral and the Bazaar". W wolnym tłumaczeniu: "Lisp warto poznać dla tego przenikliwego uczucia olśnienia, jakiego doznasz kiedy naprawdę go poznasz; to doświadczenie sprawi, że będziesz lepszym programistą, nawet jeśli nie będziesz już więcej Lisp używał".

35 Chcesz więcej? strona główna projektu Clojure Clojure - functional programming for the JVM Clojure on blip.tv Dla wszystkich zaintrygowanych tą prezentacją podaję zestaw obowiązkowych do odwiedzenia adresów.

36 Dziękuję za uwagę W prezentacji użyłem "Lisp - Alien technology" logo z com/logo.html oraz "Duke Open Source" logo z Obrazek serca pochodzi z Znak "Exclamation" pochodzi z com/photos/itsaboyd/ /. Zdjęcie IBM 704 pochodzi z Wikipedii dzięki Lawrence Livermore National Laboratory.

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Paradygmaty programowania

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

Bardziej szczegółowo

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Python. Skąd taka nazwa? Kurs systemu UNIX 1

Python. Skąd taka nazwa? Kurs systemu UNIX 1 Python Skąd taka nazwa? Kurs systemu UNIX 1 Cechy języka marketing Obiektowy (dużo prostszy od C++) Darmowy Nie tylko Unix (choć tam najpopularniejszy) Wiele bibliotek (np. Tkinter, czyli interfejs do

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

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,

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

Programowanie obiektowe. Wprowadzenie

Programowanie obiektowe. Wprowadzenie 1 Programowanie obiektowe Wprowadzenie 2 Programowanie obiektowe Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

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

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pierwsze kroki Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Co znaczy

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy

Bardziej szczegółowo

SZYBKO ZROZUMIEĆ VISUAL BASIC 2012 Artur Niewiarowski -

SZYBKO ZROZUMIEĆ VISUAL BASIC 2012 Artur Niewiarowski - S t r o n a 2 SZYBKO ZROZUMIEĆ VISUAL BASIC 2012 Artur Niewiarowski - Copyright by Artur Niewiarowski 2013 ISBN: 978-83-937802-0-4 - Artur Niewiarowski Self-Publishing - All rights reserved. Wszelkie prawa

Bardziej szczegółowo

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku. Laboratorium 7 Wstęp Jednym z podstawowych własności Javy jest wielowątkowość. Wiąże się to z możliwością współbieżnego wykonywania różnych operacji w ramach pojedynczej wirtualnej maszyny Javy (JVM).

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

Bardziej szczegółowo

Programowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne

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

Bardziej szczegółowo

Czym jest Ruby on Rails?

Czym jest Ruby on Rails? Czym jest Ruby on Rails? Ruby on Rails - napisany w języku Ruby framework open source do szybkiego tworzenia aplikacji internetowych w oparciu o architekturę MVC David Heinemeier Hansson twórca Rails Ruby

Bardziej szczegółowo

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje. Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using

Bardziej szczegółowo

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy Programowanie w C++ 1.Czym jest programowanie Pisanie programów to wcale nie czarna magia, tylko bardzo logiczna rozmowa z komputerem. Oczywiście w jednym ze specjalnie stworzonych do tego celu języków.

Bardziej szczegółowo

Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT

Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT O co chodzi? - Przypomnienie Hackathon - http://en.wikipedia.org/wiki/hackathon A hackathon is an event in which computer programmers

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Pakiety i interfejsy. Tomasz Borzyszkowski

Pakiety i interfejsy. Tomasz Borzyszkowski Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

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

Bardziej szczegółowo

Programowanie w języku Java 7 z biblioteką SWING

Programowanie w języku Java 7 z biblioteką SWING Programowanie w języku Java 7 z biblioteką SWING Opis Szkolenie przeznaczone jest dla osób bez większego doświadczenia w programowaniu. Pokrywa ono większość składni języka Java, skupiając się na podstawowych

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości

Bardziej szczegółowo

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans. GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans

Bardziej szczegółowo

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Podstawy Programowania 2

Podstawy Programowania 2 Podstawy Programowania 2 Laboratorium 7 Instrukcja 6 Object Pascal Opracował: mgr inż. Leszek Ciopiński Wstęp: Programowanie obiektowe a programowanie strukturalne. W programowaniu strukturalnym, któremu

Bardziej szczegółowo

OSGi Agata Hejmej 4.05.2009

OSGi Agata Hejmej 4.05.2009 OSGi Agata Hejmej 4.05.2009 Plan prezentacji Co to jest OSGi Jakie problemy rozwiązuje Opis standardu Przykładowa aplikacja Podsumowanie korzyści Co to jest OSGi? Standard, który pozwala na tworzenie wysoce

Bardziej szczegółowo

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci UNIX: architektura i implementacja mechanizmów bezpieczeństwa Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci Plan prezentacji: Wprowadzenie do struktury systemów rodziny UNIX

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

QUERY język zapytań do tworzenia raportów w AS/400

QUERY język zapytań do tworzenia raportów w AS/400 QUERY język zapytań do tworzenia raportów w AS/400 Dariusz Bober Katedra Informatyki Politechniki Lubelskiej Streszczenie: W artykule przedstawiony został język QUERY, standardowe narzędzie pracy administratora

Bardziej szczegółowo

Spis treści. 1 Java T M

Spis treści. 1 Java T M Spis treści 1 Java T M 1 2 Co to jest Platforma Java T M 1 3 Przygotowanie komputera 2 4 Pierwszy program 2 5 Dokumentacja 3 6 Budowa aplikacji. Klasy. 3 7 Pola i metody 4 8 Konstruktory 5 9 Inne proste

Bardziej szczegółowo

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2 Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2 Statyczne strony HTML Wczytanie statycznej strony HTML sprowadza się do odebrania żądania przez serwer, odnalezienia właściwego pliku

Bardziej szczegółowo

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski Informatyka- wykład Podstawy programowania w Pythonie dr Marcin Ziółkowski Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie 23 listopada 2015 r. JĘZYK PYTHON Język Python jest

Bardziej szczegółowo

INFORMATYKA TECHNICZNA Metody wprowadzania obiektów w programie AutoCAD za pomocą języka AutoLISP

INFORMATYKA TECHNICZNA Metody wprowadzania obiektów w programie AutoCAD za pomocą języka AutoLISP INFORMATYKA TECHNICZNA Metody wprowadzania obiektów w programie AutoCAD za pomocą języka AutoLISP 1. WPROWADZENIE Cel ćwiczeń: zapoznanie z możliwościami wykorzystania systemów CAx w procesie automatyzacji

Bardziej szczegółowo

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie

Bardziej szczegółowo

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński Plan Prezentacji. Programowanie ios. Jak zacząć? Co warto wiedzieć o programowaniu na platformę ios? Kilka słów na temat Obiective-C.

Bardziej szczegółowo

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów System Szablonów System szablonów System szablonów to biblioteka, która pozwala oddzielić warstwę prezentacji od warstwy logicznej. Aplikacja WWW najpierw pobiera wszystkie dane, przetwarza je i umieszcza

Bardziej szczegółowo

IdyllaOS. Prosty, alternatywny system operacyjny. www.idyllaos.org. Autor: Grzegorz Gliński. Kontakt: milyges@gmail.com

IdyllaOS. Prosty, alternatywny system operacyjny. www.idyllaos.org. Autor: Grzegorz Gliński. Kontakt: milyges@gmail.com IdyllaOS www.idyllaos.org Prosty, alternatywny system operacyjny Autor: Grzegorz Gliński Kontakt: milyges@gmail.com Co to jest IdyllaOS? IdyllaOS jest to mały, prosty, uniksopodobny, wielozadaniowy oraz

Bardziej szczegółowo

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia ZP/ITS/11/2012 Załącznik nr 1a do SIWZ ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia Przedmiotem zamówienia jest: Przygotowanie zajęć dydaktycznych w postaci kursów e-learningowych przeznaczonych

Bardziej szczegółowo

Języki skryptowe w programie Plans

Języki skryptowe w programie Plans Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów

Bardziej szczegółowo

Zaawansowane narzędzia programowania rozproszonego

Zaawansowane narzędzia programowania rozproszonego Zaawansowane narzędzia programowania rozproszonego Karol Gołąb karol.golab@tls-technologies.com 28 listopada 2001 1 Streszczenie Omówienie i porównanie popularnych standardów mechanizmów komunikacyjnych:

Bardziej szczegółowo

Zastanawiałeś się może, dlaczego Twój współpracownik,

Zastanawiałeś się może, dlaczego Twój współpracownik, Kurs Makra dla początkujących Wiadomości wstępne VBI/01 Piotr Dynia, specjalista ds. MS Office Czas, który poświęcisz na naukę tego zagadnienia, to 15 20 minut. Zastanawiałeś się może, dlaczego Twój współpracownik,

Bardziej szczegółowo

Tworzenie makr warunkowych

Tworzenie makr warunkowych Tworzenie makr warunkowych Czasami chcemy, aby makro lub akacja makra były wykonywane tylko wtedy, gdy spełniony jest jakiś warunek. Na przykład chcemy utworzyć makro drukujące raport, ale tylko wtedy,

Bardziej szczegółowo

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

Bardziej szczegółowo

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie

Bardziej szczegółowo

Popularne dostępne rozwiązania. Najpopularniejsze środowiska programistyczne:

Popularne dostępne rozwiązania. Najpopularniejsze środowiska programistyczne: Popularne dostępne rozwiązania Najpopularniejsze środowiska programistyczne: Popularne dostępne rozwiązania Najpopularniejsze środowiska programistyczne: oraz systemy CMS (Content Menager System): Dlaczego

Bardziej szczegółowo

LICZBY PIERWSZE. Jan Ciurej Radosław Żak

LICZBY PIERWSZE. Jan Ciurej Radosław Żak LICZBY PIERWSZE Jan Ciurej Radosław Żak klasa IV a Katolicka Szkoła Podstawowa im. Świętej Rodziny z Nazaretu w Krakowie ul. Pędzichów 13, 31-152 Kraków opiekun - mgr Urszula Zacharska konsultacja informatyczna

Bardziej szczegółowo

Analiza i projektowanie aplikacji Java

Analiza i projektowanie aplikacji Java Analiza i projektowanie aplikacji Java Modele analityczne a projektowe Modele analityczne (konceptualne) pokazują dziedzinę problemu. Modele projektowe (fizyczne) pokazują system informatyczny. Utrzymanie

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

INFORMATYKA Pytania ogólne na egzamin dyplomowy

INFORMATYKA Pytania ogólne na egzamin dyplomowy INFORMATYKA Pytania ogólne na egzamin dyplomowy 1. Wyjaśnić pojęcia problem, algorytm. 2. Podać definicję złożoności czasowej. 3. Podać definicję złożoności pamięciowej. 4. Typy danych w języku C. 5. Instrukcja

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

Scenariusz zajęć. Moduł VI. Projekt Gra logiczna zgadywanie liczby

Scenariusz zajęć. Moduł VI. Projekt Gra logiczna zgadywanie liczby Scenariusz zajęć Moduł VI Projekt Gra logiczna zgadywanie liczby Moduł VI Projekt Gra logiczna zgadywanie liczby Cele ogólne: przypomnienie i utrwalenie poznanych wcześniej poleceń i konstrukcji języka

Bardziej szczegółowo

Zacznij Tu! Poznaj Microsoft 2012. Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska

Zacznij Tu! Poznaj Microsoft 2012. Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska Zacznij Tu! Poznaj Microsoft 2012 Visual Basic Michael Halvorson Przekład: Joanna Zatorska APN Promise, Warszawa 2013 Spis treści Wstęp...................................................................vii

Bardziej szczegółowo

Programowanie w języku Java WYKŁAD

Programowanie w języku Java WYKŁAD Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa 26.05.2014 WYKŁAD 13 Refleksja Data Access Object

Bardziej szczegółowo

Instrukcja korzystania z Virtual Box-a i SQLPLUS-a

Instrukcja korzystania z Virtual Box-a i SQLPLUS-a Instrukcja korzystania z Virtual Box-a i SQLPLUS-a Wstęp W tej instrukcji zawarte są procedury dotyczące użytkowania VirtualBox-a i SQLPLUS-a w zakresie: 1. Virtual Box a. podłączanie zewnętrznych współdzielonych

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL Programowanie Pascal - język programowania wysokiego poziomu Klasa 2 Lekcja 9 PASCAL Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany

Bardziej szczegółowo

Systemy operacyjne na platformach mobilnych 2 Programowanie aplikacji z graficznym interfejsem użytkownika w GTK+

Systemy operacyjne na platformach mobilnych 2 Programowanie aplikacji z graficznym interfejsem użytkownika w GTK+ Systemy operacyjne na platformach mobilnych 2 Programowanie aplikacji z graficznym interfejsem użytkownika w GTK+ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu

Bardziej szczegółowo

Programowanie komputerów

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

Bardziej szczegółowo

Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych)

Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych) Spis treści Wstęp... xi Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych) 1 Program SQL Server Management Studio oraz język Transact SQL... 3 Omówienie programu SQL Server Management

Bardziej szczegółowo

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład VII - semestr III Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Wytwarzanie oprogramowania Model tworzenia oprogramowania

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4 Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.

Bardziej szczegółowo

10. Programowanie obiektowe w PHP5

10. Programowanie obiektowe w PHP5 Ogólnie definicja klasy wygląda jak w C++. Oczywiście elementy składowe klasy są zmiennymi PHP, stąd nieśmiertelne $. Warto zauważyć, że mogą one mieć wartość HHH mgr inż. Grzegorz Kraszewski TECHNOLOGIE

Bardziej szczegółowo

Visual Basic for Applications. Wstęp

Visual Basic for Applications. Wstęp Visual Basic for Applications Materiały źródłowe: http://www.vbamania.estrefa.pl 2008-01-14 Wstęp Visual Basic for Applications to język programowania, dołączony do wielu aplikacji. Wspierają go między

Bardziej szczegółowo

Historia i podstawowe koncepcje. Tomasz Borzyszkowski

Historia i podstawowe koncepcje. Tomasz Borzyszkowski Historia i podstawowe koncepcje Tomasz Borzyszkowski Język C W latach 1960-70 trwają intensywne prace nad pierwszymi językami programowania zapewniającymi: Łatwość użycia Efektywność kodu Łatwość rozszerzania

Bardziej szczegółowo

Paradygmaty programowania

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

Bardziej szczegółowo

Visual VM, Java Management extension i inne ciekawostki

Visual VM, Java Management extension i inne ciekawostki Visual VM, Java Management extension i inne ciekawostki Adam Dudczak adudczak (at) gmail.com Poznań Java User Group 6 października 2008 Plan prezentacji 1 Wprowadzenie do VisualVM 2 VisualVm jako klient

Bardziej szczegółowo

Użycie Visual Basic for Applications ("VBA")

Użycie Visual Basic for Applications (VBA) Użycie Visual Basic for Applications ("VBA") Przegląd SEE z modułem VBA Developer SEE używa języka programowania Visual Basic for Applications (VBA) pozwalającego tworzyć krótkie programy zwane "makrami".

Bardziej szczegółowo

Zaawansowane Techniki WWW (HTML, CSS i NODE.JS)

Zaawansowane Techniki WWW (HTML, CSS i NODE.JS) Zaawansowane Techniki WWW (HTML, CSS i NODE.JS) Dr inż. Marcin Zieliński Środa 15:30-17:00 sala: A-1-04 WYKŁAD 8 Wykład dla kierunku: Informatyka Stosowana II rok Rok akademicki: 2014/2015 - semestr zimowy

Bardziej szczegółowo

Dokumentacja aplikacji Szachy online

Dokumentacja aplikacji Szachy online Projekt z przedmiotu Technologie Internetowe Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska Przedmiot projektu: Aplikacja internetowa w języku Java Dokumentacja

Bardziej szczegółowo

Procesowa specyfikacja systemów IT

Procesowa specyfikacja systemów IT Procesowa specyfikacja systemów IT BOC Group BOC Information Technologies Consulting Sp. z o.o. e-mail: boc@boc-pl.com Tel.: (+48 22) 628 00 15, 696 69 26 Fax: (+48 22) 621 66 88 BOC Management Office

Bardziej szczegółowo

WPROWADZENIE DO JĘZYKA JAVA

WPROWADZENIE DO JĘZYKA JAVA WPROWADZENIE DO JĘZYKA JAVA programowanie obiektowe KRÓTKA HISTORIA JĘZYKA JAVA KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny języka java. Pierwsza nazwa Oak (dąb). KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny

Bardziej szczegółowo

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH Mirosław Gołda, Programista Java Agenda Kilka słów o języku Groovy Wpięcie Grooviego w projekt Springowy Testy jednostkowe

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

Domain-specific Languages. Języki dziedzinowe. Adam Robaszyński-Janiec a.r.janiec@world-loom.com

Domain-specific Languages. Języki dziedzinowe. Adam Robaszyński-Janiec a.r.janiec@world-loom.com Domain-specific Languages Języki dziedzinowe Adam Robaszyński-Janiec a.r.janiec@world-loom.com Czym są DSL? (często) prosty język przewidziany do rozwiązania konkretnego problemu Wysokopoziomowy (wyżej

Bardziej szczegółowo

Podstawy programowania wykład

Podstawy programowania wykład Podstawy programowania wykład WYDZIAŁ ELEKTRONIKI i INFORMATYKI dr inż. Robert Arsoba Politechnika Koszalińska Wydział Elektroniki i Informatyki POLITECHNIKA KOSZALIŃSKA 2009/2010 1 Materiały do wykładu

Bardziej szczegółowo

Autor: Bączkowski Karol Promotor: dr inż. Paweł FIGAT

Autor: Bączkowski Karol Promotor: dr inż. Paweł FIGAT Autor: Bączkowski Karol Promotor: dr inż. Paweł FIGAT Integracja jest to całokształt działao zmierzających do scalenia różnych rozwiązao informatycznych. W miarę rozwoju nowych technologii informatycznych

Bardziej szczegółowo

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

SZKOLENIE TWORZENIE SYSTEMÓW

SZKOLENIE TWORZENIE SYSTEMÓW SZKOLENIE TWORZENIE SYSTEMÓW INFORMATYCZNYCH Z UŻYCIEM GROOVY I GRAILS KOD: JGR Strona 1 1 Opis Platforma Java EE to zbiór zaawansowanych narzędzi umożliwiających tworzenie systemów korporacyjnych. Jest

Bardziej szczegółowo

Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

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

Bardziej szczegółowo