Original title:
Možnosti deklarativního programování v jazyku Java 8
Translated title:
Possibilities of Declarative Programming in Java 8
Authors:
Rytych, Maxim ; Pecinovský, Rudolf (advisor) ; Pavlíčková, Jarmila (referee) Document type: Master’s theses
Year:
2015
Language:
cze Publisher:
Vysoká škola ekonomická v Praze Abstract:
[cze][eng] Tato práce se zabývá možnostmi deklarativního programování v nové verzi jazyka Java 8, a to konkrétně prostřednictvím prvků převzatých z domény funkcionálních programovacích jazyků v podobě funkce jako hodnoty a proudů dat využívajících odloženého vyhodnocení nazývaných v této práci termínem datovody. Cílem práce je předvést možnosti deklarativního programování prostřednictvím těchto prvků, analyzovat jejich implementaci a předvést, jak navrhnout vlastní řešení. Přínos práce spočívá zejména v ukázce možností nových prvků, rozboru jejich implementace a návrhu vlastního řešení. Výstupy může použít český čtenář, alespoň mírně pokročilý v oboru informačních technologií. Práce je rozdělena na část teoretickou a praktickou. Teoretická část je pokryta kapitolami 3 8. Teoretická část hovoří o motivaci zavedení nových prvků, popisuje funkcionální programování a jeho základní principy, poté ukazuje principy nově zavedených prvků a končí popisem balíčku java.util.stream. Praktická část je pokryta kapitolami 9 a 10. V praktické části jsou popsány operace datovodů a ukázány příklady vlastních řešení.This paper concerns itself with possibilities of declarative programming in the new version of Java 8 language, specifically using elements adopted from the domain of functional programming languages: function as a value and lazy streams of data. The goal of this paper is to demonstrate possibilities of declarative programming using these elements, analyze its implementation and design own extensions. The contribution lies particularly in showing possibilities of the new elements, implementation analysis and design of a new functionality. The output can be used by a Czech reader, who is at least slightly advanced in the field of information technologies. The paper is divided into a theoretical and practical parts. Theoretical part is covered by chapters 3-8. Theoretical part describes motivation for introduction of the new elements, describes functional programming and its basic principles, then it shows basic principles of the newly introducted elements and ends with the description of the java.util.stream package. Pactical part is covered by chapters 9 and 10. Practical part concerns with stream oper-ations and extension design of existing functionality.
Keywords:
Collector interface; declarative programming; default methods; functional interface; functional programming; Java 8; java.util.stream package; lambda-expressions; method references; Spliterator interface; Streams; balíček java.util.stream; datovody; deklarativní programování; funkcionální programování; funkční interfejs; implicitní metody; interfejs Collector; interfejs Spliterator; Java 8; lambda-výrazy; odkazy na metody
Institution: University of Economics, Prague
(web)
Document availability information: Available in the digital repository of the University of Economics, Prague. Original record: http://www.vse.cz/vskp/eid/48622