JAVA. Další jazyky kompilovatelné do Java byte-code

Podobné dokumenty
Úvod do programování v jazyce Java

Iterator & for cyklus

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

typová konverze typová inference

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Úvod do programovacích jazyků (Java)

Jazyk C# (seminář 6)

Podmínky na zápočet. Java, zimní semestr

Úvod do programování v jazyce Java

Úvod do Groovy pro Java experty

Java Enum Java, zimní semestr ,2017 1

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Abstraktní datové typy: zásobník

Základy programovaní 3 (Java)

Dynamické programovací jazyky

JavaScript 101. "Trocha života do statických stránek"

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Výčtový typ strana 67

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Programovací jazyk Java

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

Návrh softwarových systém. Návrh softwarových systémů

Algoritmizace a programování

20. Projekt Domácí mediotéka

Groovy agilní Java. Pavel Kříž Filip Malý

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

UJO Framework. revoluční architektura beans. verze

JAVA Moduly Java, letní semestr 2018

4IT101 otázky k závěrečnému testu verze pro zimní semestr 2007/2008

Java a XML. 10/26/09 1/7 Java a XML

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

Funkcionální programování. Kristýna Kaslová

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

1. Programování proti rozhraní

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Projekty pro výuku programování v jazyce Java

Neměnné objekty. Tomáš Pitner, upravil Marek Šabo

4IT101 - Otázky k závěrečnému testu

Úvod do programovacích jazyků (Java)

Generické programování

CoffeeScript JavaScript, který se dá číst. I psát. Jan

Algoritmizace a programování

Java Výjimky Java, zimní semestr

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.

Nové prvky v C# 3.0. David Keprt

11. Přehled prog. jazyků

Testy z Javy verze 1.0 Stránka 1 z 13

JAVA Unit testing Java, zimní semestr

Software602 Form Designer

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

Principy objektově orientovaného programování

JAVA. Kotlin (Další jazyky kompilovatelné do Java byte-code)

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

Java - řazení objektů

Programování v jazyce JavaScript

11. Dědičnost. Dědičnost strana 103

Fronta (Queue) Úvod do programování. Fronta implementace. Fronta implementace pomocí pole 1/4. Fronta implementace pomocí pole 3/4

Programování v Javě I. Únor 2009

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Programovací jazyk Haskell

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Lambda funkce Novinky v interfaces Streamy Optional - aneb zbavujeme se null. Java 8. Ondřej Hrstka

KTE / ZPE Informační technologie

Teoretické minimum z PJV

Seminář Java IV p.1/38

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Programovací í jazyk Haskell

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Skriptovací jazyky. Obsah

Programování v Javě I. Leden 2008

Výjimky. Tomáš Pitner, upravil Marek Šabo

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

Programování v jazyce JavaScript

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Doxygen. Jakub Břečka

Kolekce, cyklus foreach

Generické typy. Podrobněji: The Java Language Specification ( Third Edition ) , 18

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

IB015 Neimperativní programování. Organizace a motivace kurzu, programovací jazyk Haskell. Jiří Barnat

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Dotazování nad stromem abstraktní syntaxe

Programování v jazyce JavaScript

Seminář Java II p.1/43

Stromy. Příklady. Rekurzivní datové struktury. Základní pojmy

Vytváření a použití knihoven tříd

Distribuované systémy a výpočty

Jazyk C# (seminář 3)

6 Příkazy řízení toku

Objekty v PHP 5.x. This is an object-oriented system. If we change anything, the users object.

Obsah přednášky. Příkaz for neúplný. Příkaz for příklady. Cyklus for each (enhanced for loop) Příkaz for příklady

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Řídicí struktury. alg3 1

PREPROCESOR POKRAČOVÁNÍ

GUI. Systémová integrace pro desktopové aplikace

Transkript:

JAVA Další jazyky kompilovatelné do Java byte-code

Přehled Scala objektový a funkcionální jazyk Closure funkcionální jazyk dialekt Lispu Groovy skritpovací jazyk Kotlin nová Java Jython Java implementace jazyka Python JRuby Java implementace jazyka Ruby

Scala SCAlable LAnguage mix objektového a funkcionálního jazyka staticky typovaný překládaný do byte-code existovala i verze pro.net používá se Twitter napsán ve Scale od r. 2009, původně byl v Ruby LinkedIn...

Scala používání překladač scalac spouštění scala -classpath. Třída proměnné var identifikator[:typ] = hodnota konstanty val identifikator[:typ] = hodnota datové typy třídy Int, Double, Boolean,... při překladu se použijí primitivní Java typy

Scala metody def max(x:int, y:int):int = if(x>y)x else y příkazy není nutno oddělovat středníkem pokud má tělo jeden příkaz není nutno používat složené závorky pole val pole:array[typ] = new Array[Typ](velikost) použití pole(0) = 5 seznam val seznam = List(1,2,3) neměnný, všechny prvky musejí být stejného typu Nil prázdný řetězec metody pro práci se seznamy head, tail, filter, sort, count, reverse,...

Scala n-tice val hrac = ( Novak, 68) mohou obsahovat prvky různých typů neměnné přístup k položkám hrac._1 hrac._2 funkce jsou first class elementy funkce je objekt, lze přiřadit do proměnné existují anonymní funkce př. funkce(i) = {x => Math.pow(x,i) seznam.filter(x => x > 4) seznam.exists(x => x == 4) seznam.sort((x,y) => x < y)

Scala třídy object ExampleClass { def foo() { object ~ singleton od třídy existuje jediná instance vše uvnitř se chová jako static klíčové slovo static neexistuje class Complex(re:Double, im:double) { pouze jednoduchá dědičnost ale existují traits

Scala trait částečně implementovaná třída trait se přimíchá (mix-in) do třídy class A extends T lze přidat více traits class B extends A with T1 with T2 with trait Comparable { def <(co:any):boolean def <=(co:any):boolean = (this<co) (this==co) def >(co:any):boolean =!(this<=co) def >=(co:any):boolean =!(this<co)

Scala generické datové typy class Moje[T] { val m1 = new Moje[Int] val m2 = new Moje[Double] lze mít i generické metody def foo[t](i:int)

Scala volná syntax středník nepovinný metody lze používat jako infix oprátory "%d apples".format(num) "%d apples" format num složené závorky lze použít místo obyčejných při volání metod breakable {... if (...) break()... placeholder v anonymních funkcích list map { x => sqrt(x) list map { sqrt(_) list map sqrt snadná tvorba nových jazyků

Groovy objektový jazyk, dynamický dynamicky kompilovaný do byte-code syntaxe podobná Javě a Ruby většina Java kódu je syntakticky správný Groovy kód vznik 2003 v roce v 2009 původní autor Groovy napsal I can honestly say if someone had shown me the Programming in Scala book by Martin Odersky, Lex Spoon & Bill Venners back in 2003 I'd probably have never created Groovy.

Groovy příklady class Song{ length name class Book{ name author def dosomething(thing){ println "going to do something with a thing named = " + thing.name mysong = new Song(length:90, name:"burning Down the House") anothersomething = dosomething

Groovy používání closures class Dog{ action train(){ action.call() sit = { println "Sit, Sit! Sit! Good dog" down = { println "Down! DOWN!" mydog = new Dog(action:sit) mydog.train() // prints Sit, Sit! Sit! Good dog mollie = new Dog(action:down) mollie.train() // prints Down! DOWN!

Groovy kolekce acollect = [5, 9, 2, 2, 4, 5, 6] println acollect.join(' - ') // prints 5-9 - 2-2 - 4-5 - 6 println acollect.count(2) // prints 2 println acollect.sort() // prints [2, 2, 4, 5, 5, 6, 9] maps mymap = ["name" : "Groovy", "date" : new Date()] println mymap["date"] println mymap.date ranges myrange = 29...32 myinclusiverange = 2..5 println myrange.size() // prints 3 println myrange[0] // prints 29 println myrange.contains(32) //prints false println myinclusiverange.contains(5) // prints true

Groovy GroovyBeans obdoba JavaBeans transformace AST (Abstract Syntax Tree) pomocí anotací @ToString class Person { String firstname String lastname přidá metodu tostring()

Clojure funkcionální jazyk dialekt Lispu příklady (println "Hello, world!") (javax.swing.joptionpane/showmessagedialog nil "Hello World" )

Java, letní semestr Verze prezentace 2018 AJ12.cz.2018.01 Tato prezentace podléhá licenci Creative Commons Uveďte autora-neužívejte komerčně 4.0 Mezinárodní License. 17