Lexikální analyzátor pro C++ generovaný v čase kompilace
C++ compile-time generated lexical analyzer
Typ dokumentu
bakalářská prácebachelor thesis
Autor
Boris Rúra
Vedoucí práce
Trávníček Jan
Oponent práce
Vagner Ladislav
Studijní obor
Teoretická informatikaStudijní program
InformatikaInstituce přidělující hodnost
katedra teoretické informatikyPráva
A university thesis is a work protected by the Copyright Act. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one?s own expense. The use of thesis should be in compliance with the Copyright Act http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf and the citation ethics http://knihovny.cvut.cz/vychova/vskp.htmlVysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf a citační etikou http://knihovny.cvut.cz/vychova/vskp.html
Metadata
Zobrazit celý záznamAbstrakt
Užitečnost lexikální analýzy je nepopiratelná, ať už se jedná o zpracování přirozených jazyků, jako jsou textové zprávy, nebo zpracování zdrojových kódů kompilátory. Zjednodušení jejich tvorby a zvýšení jejich výkonnosti je proto vždy vítáno. Tato práce si klade za cíl ukázat odlišný přístup v tvorbě lexikálních analyzátorů řešením problematiky z metaprogramovací perspektivy s využitím připravovaného standardu C++20. Dokazuje, že metaprogramovací přístup může přinést přinejmenším stejne kompaktní spustitelné soubory jako standartní a zároveň konkurenceschopnou rychlost lexikální analýzy. Dochází k závěru, že se jedná o schodný přístup k problematice a odstraňuje potřebu externích programů, které generují lexikální analyzátory, přestože se překladače v této oblasti stále vyvíjejí a časy kompilace mohou působit potíže. Usefulness of lexical analysis is undeniable, be it in processing of natural language such as text messages or in processing of source code by compilers.As such, simplifying the creation and boosting the performance of lexical analyzers is always welcome. This thesis aims to show a different approach to generating lexical analyzers by tackling this issue as a meta-programming one,while leveraging the features of upcoming C++20 standard. It demonstrates that the meta-programming approach can yield at least as compact binaries as the standard one while being competitive in the speed of the lexical analysis.It concludes that this is a viable approach and removes the need for external programs generating lexical analyzers, albeit compilers are still evolving in this area and compilation times may be a concern.
Kolekce
- Bakalářské práce - 18101 [349]