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

Files for download

    Last update: