|
Generating Code Change Patterns from C
Kučma, Tomáš ; Pavela, Jiří (oponent) ; Malík, Viktor (vedoucí práce)
Ensuring the semantic stability of software projects is often a costly task. DiffKemp is a tool that automatizes this process, with a special emphasis placed on performance and usability in large-scale projects. A trade-off for its efficiency is a greater degree of inaccuracy compared to formal tools. To minimize this issue, DiffKemp allows users to define their own semantics-preserving patterns, describing what kind of changes are to be treated as equal. Currently, this support is restricted to patterns written in LLVM internal representation, which is not a user-friendly language. The purpose of this work is to extend this capability to patterns written in C, significantly simplifying the process of their creation. This includes a proposal of a representation of the patterns, which must be able to encode all necessary meta-information, and subsequent design, implementation, and testing of a DiffKemp extension that allows utilization of patterns encoded in C.
|
|
Syntaktická analýza založená na řadě metod
Dolíhal, Luděk ; Goldefus, Filip (oponent) ; Meduna, Alexandr (vedoucí práce)
p, li { white-space: pre-wrap; } Hlavním cílem této práce je analýza tvorby komponentního překladače. Komponentním překladačem se zde myslí systém, který je složen z~několika vzájemně spolupracujících částí. Můj překladač je zvláštní v tom, že jeho syntaktická část sestává ze svou vzájemně spolupracujících částí. V~práci bych se chtěl zaměřit především na konstrukci jednotlivých částí překladače, dále na jejich vzájemnou komunikaci a spolupráci. Bude také nastíněno teoretické pozadí takovéhoto řešení a to pomocí gramatických systémů. Taktéž se pokusím obhájit, zda je vůbec potřebné a vhodné takový typ parseru vytvářet. V~neposlední řadě pak bude analyzován jazyk, jehož syntaktický analyzátor bude implementován zvolenou metodou.
|
|
Interaktivní interpret jazyka C
Blažek, Martin ; Peringer, Petr (oponent) ; Martinek, David (vedoucí práce)
Diplomová práce se zabývá implementací interaktivního interpretu jazyka C se syntaxí odpovídající normě ISO C99. Důraz je kladen na podporu výuky jazyka C a rychlé prototypování algoritmů. Aplikace umožňuje vytvářet programy a provádět experimenty s jazykovými konstrukcemi bez nutnosti kompilace. Uživatelské rozhraní plní funkci editoru a zároveň jednoduchého debuggeru. Pro tvorbu interpretu je použito vývojové prostředí ANTLRWorks. Je kompletně napsáno v jazyce Java využívající knihovní funkce nástroje ANTLR v3.
|
|
Nové metody zpracování textu pro klasifikaci emocí
Onderka, Jakub ; Burget, Radim (oponent) ; Mašek, Jan (vedoucí práce)
Tato diplomová práce se zabývá možnostmi extrakce emocí z textu, konkrétně strojovými metodami bez učitele. Podrobněji jsou popsány metody sémantického modelování LSA, pLSA a LDA. Byla vytvořena implementace metody LDA v jazyce Java, která byla použita pro emocionální klasifikaci 860 česky psaných dokumentů do šesti odlišných emocí. Maximální přesnost při optimalizaci parametrů modelu byla 24 %.
|
|
Script pro zpracování obrazu
Zuzaňák, Jiří ; Herout, Adam (oponent) ; Zemčík, Pavel (vedoucí práce)
Tato práce pojednává o návrhu skriptovacího jazyka, určeného pro efektivní zpracování obrazu. Úvod této práce se zabývá studiem a osvojením si metod návrhu překladačů a interpretů, včetně jejich následné aplikace při návrhu skriptovacího jazyka a jeho interpretu. Práce dále popisuje metody návrhu a implementace interpretu, včetně automatizovaných metod využitých při návrhu implementovaného programu. Další část práce se zabývá popisem struktury a implementace navrženého programu, určeného pro generování překladače libovolného jazyka, popsaného jako vstup tohoto programu. Konec práce podrobněji popisuje navržený skriptovací jazyk, jehož implementace je založena na výše popsaných metodách.
|
|
Automatické generování testovacích dat informačních systémů
Naňo, Andrej ; Fiedor, Tomáš (oponent) ; Smrčka, Aleš (vedoucí práce)
Nastroj ISAGENumoznuje automaticke generovanie komplexnych sturkturovanych testovacich vstupov imitujucich realnu komunikaciu z prostredia modernych informacnych systemov. Komplexne data, typicky so strukturou stromu v sucasnosti predstavuju zakladny transportacny prostriedok pre prenos informacii medzi uzlami distribuovanych informacnych systemov. Automaticky generator ISAGENvychadza z metodologie datami riadeneho testovania a vyuziva konkretne data z produkcneho prostredia ako hlavnu charakteristiku a specifikaciu pre riadenie generovania novych podobnych dat pre testovacie pripady splnajuce zadane kombinacne kriteria. Hlavnym prinosom tejto prace je obsiahle predlozenie technik pre automatizovane generovanie dat spolocne s praktickou implementaciou, ktora demonstruje ich pouzitie. Vytvorene riesenie umoznuje testerom vytvarat viac relevantne testovacie data, ktore vhodne reprezentuju realnu komunikaciu z produkcnych informacnych systemov.
|
| |
|
Inkrementální statická analýza pro jazyk YARA
Dvořák, Vojtěch ; Kolář, Dušan (oponent) ; Regéciová, Dominika (vedoucí práce)
Hlavním cílem této bakalářské práce je navrhnout a implementovat programovou knihovnu, jež umožní inkrementální statickou analýzu jazyka YARA. Jedním z hlavních účelů této nové knihovny je integrace s open-source projektem Yara Language Server, který vyvíjí firma Avast. Oproti dosavadnímu řešení, jež využívá neinkrementální přístup k analýze, by mělo dojít ke snížení nároků na strojový čas. Kromě informací o programovém řešení je součástí této práce rovněž souhrn teorie zaměřující se na statickou analýzu a její inkrementální variantu, zásadní informace o nástroji YARA a také seznámení s dosavadním řešením, s knihovnou Yaramod-v3. Dále je v práci zahrnuto také srovnání nové knihovny s tímto dosavadním řešením, v němž jsou prezentovány dosažené výsledky. Provedené experimenty ukázaly, že nová knihovna je schopná provést inkrementální analýzu modifikované sady pravidel přibližně 20× – 2000× rychleji v závislosti na konkrétní sadě.
|
|
Automatické generování testovacích dat informačních systémů
Naňo, Andrej ; Fiedor, Tomáš (oponent) ; Smrčka, Aleš (vedoucí práce)
Nastroj ISAGENumoznuje automaticke generovanie komplexnych sturkturovanych testovacich vstupov imitujucich realnu komunikaciu z prostredia modernych informacnych systemov. Komplexne data, typicky so strukturou stromu v sucasnosti predstavuju zakladny transportacny prostriedok pre prenos informacii medzi uzlami distribuovanych informacnych systemov. Automaticky generator ISAGENvychadza z metodologie datami riadeneho testovania a vyuziva konkretne data z produkcneho prostredia ako hlavnu charakteristiku a specifikaciu pre riadenie generovania novych podobnych dat pre testovacie pripady splnajuce zadane kombinacne kriteria. Hlavnym prinosom tejto prace je obsiahle predlozenie technik pre automatizovane generovanie dat spolocne s praktickou implementaciou, ktora demonstruje ich pouzitie. Vytvorene riesenie umoznuje testerom vytvarat viac relevantne testovacie data, ktore vhodne reprezentuju realnu komunikaciu z produkcnych informacnych systemov.
|
|
Sémantika české pivní reklamy aneb "Chlapi sobě"
VEDROVÁ, Adéla
Diplomová práce se zabývá sémantickou analýzou české pivní reklamy (vizuální a audiovizuální) různých značek za uplynulou dobu posledních dvaceti let. Práce na základě teoretických poznatků, vycházejících zejména z primárních reklamních postupů, psychologie a jazyka reklamy, dekóduje a interpretuje obsah jednotlivých zvolených reklam. Pro komplexní obsáhnutí tématu je diplomová práce doplněna o poznatky z historie piva, pivovarnictví a právního vymezení reklamy na alkohol.
|