Optimalizace frontendu překladače

dc.contributor.advisorBeránek, Jakub
dc.contributor.authorIndrák, Jakub
dc.contributor.refereeBěhálek, Marek
dc.date.accepted2026-06-01
dc.date.accessioned2026-09-02T14:40:35Z
dc.date.available2026-09-02T14:40:35Z
dc.date.issued2026
dc.description.abstractTato bakalářská práce se zabývá optimalizací frontendu překladače jazyka C. Práce analyzuje architekturu překladačů, teorii formálních jazyků a existující implementace překladačů (GCC, Clang/LLVM, TCC). Na základě této analýzy je navržen a implementován překladač cppliator v jazyce C++23 s backendem využívajícím knihovnu LLVM. Klíčovými optimalizačními technikami jsou datově orientovaný návrh s plochým polem pro reprezentaci abstraktního syntaktického stromu, explicitní stavový automat namísto rekurzivního sestupu, Prattův parser pro výrazy s operátorovou precedencí, rozsáhlé využití constexpr vyhledávacích tabulek a podpora paralelního parsování. Dosahuje 10násobné propustnosti oproti GCC.cs
dc.description.abstractThis bachelor thesis focuses on the optimization of a C language compiler frontend. The thesis analyzes compiler architecture, formal language theory, and existing compiler implementations (GCC, Clang/LLVM, TCC). Based on this analysis, a compiler called cppliator is designed and implemented in C++23, with a backend utilizing the LLVM library. Key optimization techniques include data-oriented design with a flat array representation of the abstract syntax tree, an explicit state machine instead of recursive descent parsing, a Pratt parser for operator-precedence expression parsing, extensive use of constexpr lookup tables, and support for parallel parsing. The resulting compiler achieves an 10x throughput improvement compared to gcc.en
dc.description.department460 - Katedra informatikycs
dc.description.resultvýborněcs
dc.format.extent1902386 bytes
dc.format.mimetypeapplication/pdf
dc.identifier.otherOSD002
dc.identifier.senderS2724
dc.identifier.thesisIND0040_FEI_B0613A140014_2026
dc.identifier.urihttp://hdl.handle.net/10084/160790
dc.language.isocs
dc.publisherVysoká škola báňská – Technická univerzita Ostravacs
dc.rights.accessopenAccess
dc.subjectpřekladačcs
dc.subjectfrontendcs
dc.subjectoptimalizacecs
dc.subjectjazyk~Ccs
dc.subjectsyntaktická analýzacs
dc.subjectlexikální analýzacs
dc.subjectdatově orientovaný návrhcs
dc.subjectabstraktní syntaktický stromcs
dc.subjectPrattův parsercs
dc.subjectparalelní parsovánícs
dc.subjectcompileren
dc.subjectfrontenden
dc.subjectoptimizationen
dc.subjectC~languageen
dc.subjectparsingen
dc.subjectlexical analysisen
dc.subjectdata-oriented designen
dc.subjectabstract syntax treeen
dc.subjectPratt parseren
dc.subjectparallel parsingen
dc.thesis.degree-grantorVysoká škola báňská – Technická univerzita Ostrava. Fakulta elektrotechniky a informatikycs
dc.thesis.degree-levelBakalářský studijní programcs
dc.thesis.degree-nameBc.
dc.thesis.degree-programInformatikacs
dc.titleOptimalizace frontendu překladačecs
dc.title.alternativeCompiler Frontend Optimizationsen
dc.typeBakalářská prácecs
local.files.count6
local.files.size4368693
local.has.filesyes

Files

Original bundle

Now showing 1 - 5 out of 6 results
Loading...
Thumbnail Image
Name:
IND0040_FEI_B0613A140014_2026.pdf
Size:
1.81 MB
Format:
Adobe Portable Document Format
Description:
Text práce
Loading...
Thumbnail Image
Name:
IND0040_FEI_B0613A140014_2026_zadani.pdf
Size:
153.13 KB
Format:
Adobe Portable Document Format
Description:
Zadání
Loading...
Thumbnail Image
Name:
IND0040_FEI_B0613A140014_2026_priloha.zip
Size:
1.82 MB
Format:
ZIP
Description:
Příloha
Loading...
Thumbnail Image
Name:
IND0040_FEI_B0613A140014_2026_posudek_vedouci_Beranek_Jakub.pdf
Size:
165.47 KB
Format:
Adobe Portable Document Format
Description:
Posudek vedoucího – Beránek, Jakub
Loading...
Thumbnail Image
Name:
IND0040_FEI_B0613A140014_2026_posudek_oponent_Behalek_Marek.pdf
Size:
160.73 KB
Format:
Adobe Portable Document Format
Description:
Posudek oponenta – Běhálek, Marek