Possibilities of Declarative Programming in Java 8
Thesis title: | Možnosti deklarativního programování v jazyku Java 8 |
---|---|
Author: | Rytych, Maxim |
Thesis type: | Diplomová práce |
Supervisor: | Pecinovský, Rudolf |
Opponents: | Pavlíčková, Jarmila |
Thesis language: | Česky |
Abstract: | 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í. |
Keywords: | odkazy na metody; datovody; lambda-výrazy; Java 8; implicitní metody; funkční interfejs; interfejs Spliterator; balíček java.util.stream; deklarativní programování; funkcionální programování; interfejs Collector |
Thesis title: | Possibilities of Declarative Programming in Java 8 |
---|---|
Author: | Rytych, Maxim |
Thesis type: | Diploma thesis |
Supervisor: | Pecinovský, Rudolf |
Opponents: | Pavlíčková, Jarmila |
Thesis language: | Česky |
Abstract: | 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: | method references; Streams; java.util.stream package; functional interface; default methods; Java 8; Spliterator interface; lambda-expressions; functional programming; declarative programming; Collector interface |
Information about study
Study programme: | Aplikovaná informatika/Informační systémy a technologie |
---|---|
Type of study programme: | Magisterský studijní program |
Assigned degree: | Ing. |
Institutions assigning academic degree: | Vysoká škola ekonomická v Praze |
Faculty: | Faculty of Informatics and Statistics |
Department: | Department of Information Technologies |
Information on submission and defense
Date of assignment: | 7. 1. 2015 |
---|---|
Date of submission: | 2. 12. 2015 |
Date of defense: | 4. 2. 2016 |
Identifier in the InSIS system: | https://insis.vse.cz/zp/50801/podrobnosti |