Original title:
Implementace součtového datového typu v C++
Translated title:
Implementation of Sum Data Type in C++
Authors:
Novák, Samuel Matyáš ; Roupec, Jan (referee) ; Matoušek, Radomil (advisor) Document type: Master’s theses
Year:
2020
Language:
eng Publisher:
Vysoké učení technické v Brně. Fakulta strojního inženýrství Abstract:
[eng][cze]
Práce se zaobírá problematikou implementace součtového datového typu v jazyce C++. Nejprve navrhuje vlastní abstrakce pro manipulaci s posloupnostmi hodnot a typů, které následně umožňují vyjadřovat komplexní operace deklarativně. V průběhu implementace jsou prezentovány návrhové vzory obvyklé pro oblast metaprogramování. Implementace přichází s rozhodnutími odlišnými od referenční implementace. Pro manipulaci se součtovým typem jsou představeny dvě šablony funkce, lišící se sémantikou. Užití součtového typu je ukázano na příkladu konečného stavového automatu.
This work concerns the implementation of a sum data type in C++. First, custom abstractions to handle sequences of values and types are proposed, which later enable complex operations to be expressed declaratively. The implementation presents the design patterns common in metaprogramming. Design decisions different from the reference implementation were made. To manipulate the sum type, two function templates with different semantics are introduced. An example of using the sum type to represent a finite state machine is provided.
Keywords:
algebraické datové typy; datové struktury; generické programování; generování kódu při kompilaci; polymorfismus; součtové datové typy; šablonové metaprogramování; algebraic data types; compile-time code generation; data structures; generic programming; polymorphism; sum data types; template metaprogramming
Institution: Brno University of Technology
(web)
Document availability information: Fulltext is available in the Brno University of Technology Digital Library. Original record: http://hdl.handle.net/11012/191876