Porovnání implementací předních částí překladačů GCC a LLVM
GCC and LLVM - Comparison of implementation of front-ends
dc.contributor.advisor | Trávníček Jan | |
dc.contributor.author | Ryšavý Ivan | |
dc.date.accessioned | 2016-04-07T14:40:58Z | |
dc.date.available | 2016-04-07T14:40:58Z | |
dc.date.issued | 2015-06-08 | |
dc.identifier | KOS-587865404705 | |
dc.identifier.uri | http://hdl.handle.net/10467/63149 | |
dc.description.abstract | Práce se zabývá implementací předních částí překladačů GCC a LLVM. Přední části zpracují a analyzují zdrojový kód jazyka Mila, který transformují ve vnitřní formu daného překladače. Jazyk Mila je zde rozebrán a je pro něj implementován lexikální analyzátor, parser a abstraktní syntaktický strom, což je v práci dokumentováno. V práci je kladen důraz na detailní popis a porovnání využitých rozhraní GCC a LLVM. Na základě tohoto popisu může kdokoliv další vytvořit novou přední část pro zmíněné překladače. Porovnáním bylo zjištěno, že implementace přední části pro LLVM je oproti GCC náročnější, protože se od přední části vyžaduje větší předzpracování zdrojového kódu. Obě přední části byly úspěšně implementovány a jsou otestovány sadou vzorových programů, které pokrývají všechny implementované funkcionality. Zdrojové kódy předních částí a vzorových programů jsou spolu s kompletní LL(k) gramatikou jazyka Mila k nalezení v příloze. | cze |
dc.description.abstract | Implementations of compiler frontends for GCC and LLVM compiler toolkits are presented in the thesis. Frontends parse and analyse Mila source code, transforming it into an intermediate representation used by a respective compiler. Mila language is formally described and an implementation of a lexical analyser, a syntactic analyser and an abstract syntax tree is documented. In this thesis there is placed emphasis on the detailed description and comparison of used interface of GCC and LLVM. Based on this description, anyone can create a new frontend for these compilers. It was found that the implementation of the LLVM front-end is more difficult, because there is needed to do more transformations of source code in the front-end. Front-ends have been successfully implemented and tested to be correct by a set of sample programs covering all functionality. Source codes of front-ends, sample programs and complete LL(k) grammar of Mila language can be found in the appendix. | eng |
dc.language.iso | CZE | |
dc.publisher | České vysoké učení technické v Praze. Vypočetní a informační centrum. | cze |
dc.publisher | Czech Technical University in Prague. Computing and Information Centre. | eng |
dc.rights | 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://www.cvut.cz/sites/default/files/content/d1dc93cd-5894-4521-b799-c7e715d3c59e/cs/20160901-metodicky-pokyn-c-12009-o-dodrzovani-etickych-principu-pri-priprave-vysokoskolskych.pdf | eng |
dc.rights | Vysokoš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://www.cvut.cz/sites/default/files/content/d1dc93cd-5894-4521-b799-c7e715d3c59e/cs/20160901-metodicky-pokyn-c-12009-o-dodrzovani-etickych-principu-pri-priprave-vysokoskolskych.pdf | cze |
dc.subject | GCC, LLVM, Přední část překladače, Rozhraní překladače, Lexikální analýza, Syntaktická analýza, Abstraktní syntaktický strom, Jazyk Mila | cze |
dc.subject | GCC, LLVM, Compiler frontend, Compiler interface, Lexical analysis, Syntactic analysis, Abstract syntax tree, Mila language | eng |
dc.title | Porovnání implementací předních částí překladačů GCC a LLVM | cze |
dc.title | GCC and LLVM - Comparison of implementation of front-ends | eng |
dc.type | bakalářská práce | cze |
dc.type | bachelor thesis | eng |
dc.date.accepted | 2015-06-24 | |
dc.contributor.referee | Polách Radomír | |
theses.degree.discipline | Teoretická informatika | cze |
theses.degree.grantor | katedra teoretické informatiky | cze |
theses.degree.programme | Informatika | cze |
Soubory tohoto záznamu
Tento záznam se objevuje v následujících kolekcích
-
Bakalářské práce - 18101 [348]