Systém pre introšpekciu v C++
A system for introspection in C++
Systém pro introspekci v C++
bakalářská práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/148390Identifikátory
SIS: 235537
Kolekce
- Kvalifikační práce [10692]
Autor
Vedoucí práce
Oponent práce
Ježek, Pavel
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Programování a softwarové systémy
Katedra / ústav / klinika
Katedra softwarového inženýrství
Datum obhajoby
10. 9. 2021
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Slovenština
Známka
Výborně
Klíčová slova (česky)
introšpekcia|C++|analýza zdrojových textovKlíčová slova (anglicky)
introspection|C++|source-code analysisIntrošpekcia a reflexia sú silné programovacie nástroje umožňujúce všeobecné riešenie problematických úloh, ako napríklad multiple dispatch alebo serializácia. V C++ je pod- pora pre introšpekciu veľmi slabá a reflexia nie je možná vôbec. Štandard jazyka sa za posledné obdobie značne rozvinul, vďaka čomu je už možné do jazyka tieto mechanizmy doplniť vlastným rozšírením. Výsledkom tejto práce je knižnica pre introšpekciu pracuj- úca s metadátami vygenerovanými zo zdrojového textu a generátor týchto metadát ako nástroj nad prekladačom. Funkčnosť celého systému je demonštrovaná implementáciou mechanizmu multiple dispatch, ktorý nie je jednoducho implementovateľný v štandard- nom C++. 1
Introspection and reflection are powerful programming tools that allow generic solu- tions for difficult problems such as multiple dispatch or serialization. In C++, the support for introspection is seriously limited, while reflection is virtually non-existent. The langu- age standard has been developing significantly in recent past and thus it is now possible to extend the language with those features using a custom tool. The result of this thesis is an introspection library working with metadata generated from source code and a compiler- based metadata generator. The functionality of the whole system shall be demonstrated by implementing multiple dispatch, for which there is no simple implementation in stan- dard C++. 1