Advanced programming constructs and techniques in the Swift language
Thesis title: | Pokročilé programové konstrukce a programovací techniky jazyka Swift |
---|---|
Author: | Čislinský, Jan |
Thesis type: | Diplomová práce |
Supervisor: | Pecinovský, Rudolf |
Opponents: | Oraný, Vladimír |
Thesis language: | Česky |
Abstract: | Tato práce se zaměřuje na představení pokročilých programových konstrukcí a programovacích technik jazyka Swift. Také rozebírám programová paradigmata, která koncepce jazyka Swift podporuje (objektově-orientované a funkcionální). Popisuji konkrétní koncepty jednotlivých paradigmat s následným zhodnocením, jak Swift dané paradigma podporuje.
Podrobně vysvětluji pokročilé konstrukce následujících oblastí: práce s proměnnými, použití typu s možnou prázdnou hodnotou, výčtových typů, funkcí a uzávěrů. Dále vytváření vlastních operátorů a subskriptů. Představuji jak se pracuje s protokoly a generickými typy. Také popisuji jak na paralelní vykonávání programů a jak ošetřit chybové stavy pomocí vyhazování chyb. Zevrubně vysvětluji hodnotové typy a rozdíly oproti referenčním typům. Dále zanořování typů a nechybí ani popis všech funkcí vyššího řádu v jazyce Swift. Nakonec představuji práci s rozšířeními, konkrétně rozšíření o vypočítanou proměnnou, inicializační metodu, funkci, subskript, zanořený typ a také rozšiřování protokolů a generických typů.
Z pohledu pokročilých programovacích technik probírám následující: řetězení a kompozice funkcí, ukládání struktur, optimalizace výkonu hodnotových typů, reflexe v jazyce Swift. Dále popisuji způsob fungování modulů a jmenných prostorů a na závěr protokolově-orientované programování. |
Keywords: | programovací jazyk; swift; pokročilé programové konstrukce; programovací techniky; objektově orientované paradigma; funkcionální paradigma |
Thesis title: | Advanced programming constructs and techniques in the Swift language |
---|---|
Author: | Čislinský, Jan |
Thesis type: | Diploma thesis |
Supervisor: | Pecinovský, Rudolf |
Opponents: | Oraný, Vladimír |
Thesis language: | Česky |
Abstract: | The thesis focuses on advanced programming constructs and techniques of the Swift programming language. At the beginning programming paradigms that are supported by the Swift design (object-oriented and functional) are introduced. Concepts of each paradigm are described and Swift is then evaluated by the level of support for these paradigms.
Following programming constructs are described in-depth: working with variables, optional types, enumerated types, functions and closures. Creating of custom operators and subscripts. Operations with protocols, generic types and parallel program execution. Error handling with throwing functions. Detailed explanation of value types and their differences from reference type is given too. Thesis also explains nested types and all higher-order functions in Swift. At the end are described extensions; specifically extension of computed property, initialization function, function, subscript, nested type and protocol and generic types extensions.
In the last section of the thesis these advanced programming techniques are described; function chaining and composition, structure saving, performance optimization of value types, reflection in the Swift programming language and how modules and namespaces work. At the end protocol-oriented programming is introduced. |
Keywords: | programming language; swift; advanced program constructs; programming techniques; object-oriented paradigm; functional paradigm |
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: | 8. 1. 2017 |
---|---|
Date of submission: | 26. 4. 2017 |
Date of defense: | 7. 6. 2017 |
Identifier in the InSIS system: | https://insis.vse.cz/zp/60633/podrobnosti |