Filozoa Clojure. Mateusz Dereniowski. 15 lipca Instytut Informatyki Uniwersytetu Wrocªawskiego

Podobne dokumenty
Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Przyszłość programowania Języki funkcyjne na przykładzie Clojure

Model obiektu w JavaScript

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Zagadnienia programowania obiektowego

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

Praca Dyplomowa Magisterska

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

Projekt ATENA - system wspomagaj cy zarz dzanie szkoª lub zespoªem szkóª przedlicealnych

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Programowanie obiektowe. Wprowadzenie

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

Programowanie obiektowe - 1.

Java jako język programowania

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Programowanie obiektowe

Listy i operacje pytania

Programowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne

Programowanie obiektowe

Propozycja integracji elementów ±wiata gry przy u»yciu drzew zachowa«

Wzorce projektowe kreacyjne

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

Android - wprowadzenie. Łukasz Przywarty

MiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

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

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Modelowanie i Programowanie Obiektowe

Mechanizmy refleksji w Javie i C# Autor: Aleksander Nałęczyński

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Translacja wprowadzenie

Programowanie obiektowe

LISP - "LISt Processing"

Programowanie Obiektowe

Tworzenie aplikacji webowych w oparciu o framework ObjectLedge

Podstawy Informatyki i Technologii Informacyjnej

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013. Forma studiów: Niestacjonarne Kod kierunku: 11.

Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu.

Język programowania Scala + aktorzy Akka

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

Czym jest Ruby on Rails?

JAK INWESTOWAĆ W ROPĘ?

Redis, skrypty w języku Lua

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych?

25 LECIE FIRMY WÜRTH SPRZYJA ROZWOJOWI

Spis tre±ci. Paradygmaty programowania tematy referatów (26 marca 2018) 1 Gramatyki i j zyki formalne, notacja BNF, diagramy syntaktyczne 2

Wzorce projektowe strukturalne cz. 1

Java EE produkcja oprogramowania

Podstawy modelowania programów Kod przedmiotu

Charakterystyka systemów plików

KOTLIN. Język programowania dla Androida

Java język programowania zorientowany obiektowo

EPI: Interfejs Graczny 2009/2010 Podstawy Rubiego

Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów.

Wstęp do ruby dla programistów javy

WY SZA SZKO A INFORMATYKI STOSOWANEJ I ZARZ DZANIA

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

PROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec

Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów

Biblioteka do operacji na macierzach w C++ przy u»yciu oblicze«za pomoc OpenMP

Wstęp do programowania w języku Java

Język Java część 2 (przykładowa aplikacja)

Rok akademicki: 2015/2016 Kod: JIS s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

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

Zaawansowane programowanie w języku C++

Podstawy modelowania w j zyku UML

Rozwi zania klasycznych problemów w Rendezvous

Programowanie obiektowe

YapS Plan testów. Šukasz Bieniasz-Krzywiec Dariusz Leniowski Jakub Š cki 29 maja 2007

Aplikacje Internetowe termin dodatkowy

Programowanie obiektowe

Subversion - jak dziaªa

Programowanie funkcyjne w Pythonie

Programowanie funkcyjne. Wykªad 13

Programowanie obiektowe zastosowanie języka Java SE

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU

Java Język programowania

Optymalizacja R dlaczego warto przesi ± si na Linuxa?

Excel w logistyce - czyli jak skrócić czas przygotowywania danych i podnieść efektywność analiz logistycznych

c Radosªaw Klimek Vincent Van GOGH: M»czyzna pij cy li»ank kawy J zyk programowania Java

Tworzenie aplikacji w języku Java

Podstawy JavaScript. Dawid Poªap. Dawid Poªap Technologia informacyjna Grudzie«, / 13

Programowanie współbieżne i rozproszone

Bazy danych. Joanna Grygiel

Od wymagań do Javy w mgnieniu oka

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA. W obu podpunktach zakªadamy,»e kolejno± ta«ców jest wa»na.

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

Technologie obiektowe

System kontroli wersji SVN

Programowanie obiektowe

Wstęp do programowania w języku Java

Roletka mini standard

Wpªyw wdro»enia IPv6 na bezpiecze«stwo sieci

Paradygmaty programowania

Projektowanie systemów informacyjnych: język UML

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

Transkrypt:

Filozoa Clojure Mateusz Dereniowski Instytut Informatyki Uniwersytetu Wrocªawskiego 15 lipca 2010

Wprowadzenie Clojure w skrócie Wieloplatformowo± aka JVM Standardy Czym jest JVM Co ª czy Clojure i JVM? Cechy j zyka Cechy Clojure Struktury agreguj ce Cechy j zyka funkcyjnego Cechy Javy Wspóªbie»no± Odej±cie od programowania obiektowego Programowanie czysto funkcyjne Niemodykowalny stan Stan a to»samo± Programowa pami transakcyjna

W skrócie Nowoczesny dialekt j zyka Lisp:

W skrócie Nowoczesny dialekt j zyka Lisp: twórca: Rich Hickey

W skrócie Nowoczesny dialekt j zyka Lisp: twórca: Rich Hickey pocz tek: 16 pa¹dziernika 2007

W skrócie Nowoczesny dialekt j zyka Lisp: twórca: Rich Hickey pocz tek: 16 pa¹dziernika 2007 paradygmat: funkcyjny, wieloparadygmatowy

W skrócie Nowoczesny dialekt j zyka Lisp: twórca: Rich Hickey pocz tek: 16 pa¹dziernika 2007 paradygmat: funkcyjny, wieloparadygmatowy typowanie: dynamiczne, silne

W skrócie Nowoczesny dialekt j zyka Lisp: twórca: Rich Hickey pocz tek: 16 pa¹dziernika 2007 paradygmat: funkcyjny, wieloparadygmatowy typowanie: dynamiczne, silne platforma: wieloplatformowy

Standardy Pierwszy przemysªowo wykorzystywanym dialekt Lispu?

Czym jest JVM Java Vitrual Machine: ±rodowisko uruchomieniowe dla programów, niezale»ne od platformy, stabilne, szybkie, uznane przez przemysª

Co ª czy Clojure i JVM? Clojure zostaª zaprojektowany od podstawy, aby dziaªa w ±rodowiski Javy,

Co ª czy Clojure i JVM? Clojure zostaª zaprojektowany od podstawy, aby dziaªa w ±rodowiski Javy, kompilowany bezpo±rednio do kodu bajtowego JVM,

Co ª czy Clojure i JVM? Clojure zostaª zaprojektowany od podstawy, aby dziaªa w ±rodowiski Javy, kompilowany bezpo±rednio do kodu bajtowego JVM, funkcje zdeniowane w Clojure mog by u»yte zamiennie z kodem Javy i vice versa.

Cechy Clojure REPL: Read, Eval, Print, Loop,

Cechy Clojure REPL: Read, Eval, Print, Loop, bogaty zestaw typów podstawowych (Lisp),

Cechy Clojure REPL: Read, Eval, Print, Loop, bogaty zestaw typów podstawowych (Lisp), struktury agreguj ce: listy, wektory, mapy, zbiory,

Cechy Clojure REPL: Read, Eval, Print, Loop, bogaty zestaw typów podstawowych (Lisp), struktury agreguj ce: listy, wektory, mapy, zbiory, makra (Lisp)

Cechy Clojure REPL: Read, Eval, Print, Loop, bogaty zestaw typów podstawowych (Lisp), struktury agreguj ce: listy, wektory, mapy, zbiory, makra (Lisp) wsparcie dla wielow tkowo±ci

Struktury agreguj ce Wszystkie wbudowane w Clojure struktury implementuj iteratory, comparatory, interfejsy kolekcji itp.

Cechy j zyka funkcyjnego funkcje obywatelami pierwszej klasy, domkni cia,

Cechy j zyka funkcyjnego funkcje obywatelami pierwszej klasy, domkni cia, trwaªe struktury danych

Cechy j zyka funkcyjnego funkcje obywatelami pierwszej klasy, domkni cia, trwaªe struktury danych rekursja zamiast p tli z efektami ubocznymi,

Cechy j zyka funkcyjnego funkcje obywatelami pierwszej klasy, domkni cia, trwaªe struktury danych rekursja zamiast p tli z efektami ubocznymi, leniwe sekwencje

Cechy j zyka funkcyjnego funkcje obywatelami pierwszej klasy, domkni cia, trwaªe struktury danych rekursja zamiast p tli z efektami ubocznymi, leniwe sekwencje list comprehensions

Trwaªe struktury danych

Cechy Javy dost p do bogatego zbioru bibliotek,

Cechy Javy dost p do bogatego zbioru bibliotek, proxy do interfejsów/class zdeniowanych w Javie,

Stan Mutable objects are the new spaghetti code. Rich Hickey

TDD Musi by co± na rzeczy, skoro przemysª tak silnie promuje TDD.

Stan obiektów Programi±ci j zyków obiektowych doskonale zdaj sobie spraw z niemo»no±ci kontrolowania stanu obiektów zawartych w swoich programach.

Zalety programowania czysto funkcyjnego czyste funkcje s ªatwe do uwspóªbie»niania,

Zalety programowania czysto funkcyjnego czyste funkcje s ªatwe do uwspóªbie»niania, czysto± funkcji zapewnia ich lepsze zrozumienie...

Zalety programowania czysto funkcyjnego czyste funkcje s ªatwe do uwspóªbie»niania, czysto± funkcji zapewnia ich lepsze zrozumienie......co w poª czeniu z kompozycyjnym charakterem programów daje lepsz mo»liwo± enkapsulacji poszczególnych fragmentów kodu, co zwi ksza poziom abstrakcji i reusability,

Zalety programowania czysto funkcyjnego czyste funkcje s ªatwe do uwspóªbie»niania, czysto± funkcji zapewnia ich lepsze zrozumienie......co w poª czeniu z kompozycyjnym charakterem programów daje lepsz mo»liwo± enkapsulacji poszczególnych fragmentów kodu, co zwi ksza poziom abstrakcji i reusability, kompozycja funkcji daje tak»e lepsz mo»liwo± ±ledzenia dziaªania programu,

Efekty uboczne Niemniej Clojure nie idzie w ±lady za Haskellem wymuszaj c bezwarunkow czysto± funkcji. Dzi ki przechowywaniu stanu programu w strukturach odpornych na wspóªbie»n rywalizacj, jest on zawsze bezpieczny i spójny.

Stan a to»samo± Dzi ki zastosowaniu trwaªych struktur danych ka»da "zmiana" stanu danej struktury wi»e si z utworzeniem nowego obiektu. Obiekty jako takie nie ulegaj zmianie.

Programowa pami transakcyjna atomowo± - wszystkie operacje zostaj wykonane, albo transakcja nie dochodzi do skutku.

Programowa pami transakcyjna atomowo± - wszystkie operacje zostaj wykonane, albo transakcja nie dochodzi do skutku. spójno± - transakcje s sprawdzane przed zaakceptowaniem,

Programowa pami transakcyjna atomowo± - wszystkie operacje zostaj wykonane, albo transakcja nie dochodzi do skutku. spójno± - transakcje s sprawdzane przed zaakceptowaniem, odizolowanie -»adna transakcja nie widzi efektów dziaªania innych transakcji podczas swojego wykonywania,