Použití šablon změn kódu počas analýzy ekvivalence programů
but.committee | prof. Ing. Tomáš Vojnar, Ph.D. (předseda) doc. Ing. Ondřej Ryšavý, Ph.D. (místopředseda) Ing. František Grézl, Ph.D. (člen) doc. Ing. Jan Kořenek, Ph.D. (člen) Dr. Ing. Petr Peringer (člen) | cs |
but.defence | Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A. Otázky u obhajoby: Jak je řešeno pořadí aplikování šablon? Je aplikování šablon nezávislé na pořadí? Jak jsou řešeny nejednoznačné ( ambiguous ) šablony? Tzn. pokud pro danou instrukci lze aplikovat dvě různé šablony (např. díky kovarianci/kontravarianci typu operandů), která se použije?. Diskutujte vliv Vašeho řešení na míru falešných pozitiv (nejlépe na experimentech uvedených v práci). | cs |
but.jazyk | angličtina (English) | |
but.program | Informační technologie | cs |
but.result | práce byla úspěšně obhájena | cs |
dc.contributor.advisor | Malík, Viktor | en |
dc.contributor.author | Šilling, Petr | en |
dc.contributor.referee | Fiedor, Tomáš | en |
dc.date.created | 2021 | cs |
dc.description.abstract | Cílem této práce je návrh statické analýzy pro rozpoznávání vzorů, popisujících často se vyskytující změny mezi různými verzemi nízkoúrovňového kódu. V rámci práce je navržen způsob kódování vzorů, využívající vnitřní reprezentaci LLVM, a algoritmus pro hledání vzorů založený na postupném porovnávání instrukcí podle toku řízení. Navržená analýza byla implementována jako rozšíření nástroje DiffKemp pro analýzu sémantických rozdílů různých verzí rozsáhlých projektů napsaných v jazyce C. Výsledky experimentů provedených na třech dvojicích minulých verzí linuxového jádra ukazují, že navržené rozšíření dokáže eliminovat podstatné množství falešně pozitivních či obecně nežádoucích rozdílů z výsledků porovnání nástrojem DiffKemp, které by jinak vyžadovaly manuální kontrolu. | en |
dc.description.abstract | The goal of this thesis is to propose a static analysis method for recognition of code change patterns describing recurrent changes between different versions of low-level code. The thesis proposes an encoding method of patterns, which uses the LLVM intermediate representation, and a pattern matching algorithm based on gradual comparison of instructions according to their control flow. The proposed analysis has been implemented as an extension of DiffKemp, a tool for analysing semantic differences between versions of large C projects. Results of experiments conducted on three pairs of past versions of the Linux kernel show that the extension is able to eliminate a substantial amount of false-positive or generally undesirable differences from the output of DiffKemp, which would otherwise require manual inspection. | cs |
dc.description.mark | A | cs |
dc.identifier.citation | ŠILLING, P. Použití šablon změn kódu počas analýzy ekvivalence programů [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2021. | cs |
dc.identifier.other | 136571 | cs |
dc.identifier.uri | http://hdl.handle.net/11012/199411 | |
dc.language.iso | en | cs |
dc.publisher | Vysoké učení technické v Brně. Fakulta informačních technologií | cs |
dc.rights | Standardní licenční smlouva - přístup k plnému textu bez omezení | cs |
dc.subject | DiffKemp | en |
dc.subject | SimpLL | en |
dc.subject | LLVM | en |
dc.subject | Clang | en |
dc.subject | GNU/Linux kernel | en |
dc.subject | porovnávání vzorů změn kódu | en |
dc.subject | reprezentace vzorů změn kódu | en |
dc.subject | izomorfismus podgrafů | en |
dc.subject | analýza sémantických rozdílů mezi programy | en |
dc.subject | refaktorovací vzory | en |
dc.subject | LLVM metadata | en |
dc.subject | vnitřní reprezentace LLVM | en |
dc.subject | graf toku řízení | en |
dc.subject | odstraňování falešně pozitivních hlášení | en |
dc.subject | DiffKemp | cs |
dc.subject | SimpLL | cs |
dc.subject | LLVM | cs |
dc.subject | Clang | cs |
dc.subject | GNU/Linux kernel | cs |
dc.subject | code change pattern matching | cs |
dc.subject | code change pattern representation | cs |
dc.subject | subgraph isomorphism | cs |
dc.subject | semantic difference analysis | cs |
dc.subject | refactoring patterns | cs |
dc.subject | LLVM metadata | cs |
dc.subject | LLVM intermediate representation | cs |
dc.subject | control-flow graph | cs |
dc.subject | elimination of false-positive reports | cs |
dc.title | Použití šablon změn kódu počas analýzy ekvivalence programů | en |
dc.title.alternative | Applying Code Change Patterns during Analysis of Program Equivalence | cs |
dc.type | Text | cs |
dc.type.driver | bachelorThesis | en |
dc.type.evskp | bakalářská práce | cs |
dcterms.dateAccepted | 2021-06-15 | cs |
dcterms.modified | 2021-06-19-12:15:56 | cs |
eprints.affiliatedInstitution.faculty | Fakulta informačních technologií | cs |
sync.item.dbid | 136571 | en |
sync.item.dbtype | ZP | en |
sync.item.insts | 2025.03.18 19:36:39 | en |
sync.item.modts | 2025.01.15 14:32:19 | en |
thesis.discipline | Informační technologie | cs |
thesis.grantor | Vysoké učení technické v Brně. Fakulta informačních technologií. Ústav inteligentních systémů | cs |
thesis.level | Bakalářský | cs |
thesis.name | Bc. | cs |
Files
Original bundle
1 - 4 of 4
Loading...
- Name:
- final-thesis.pdf
- Size:
- 896.93 KB
- Format:
- Adobe Portable Document Format
- Description:
- final-thesis.pdf
Loading...
- Name:
- Posudek-Vedouci prace-24037_v.pdf
- Size:
- 86.78 KB
- Format:
- Adobe Portable Document Format
- Description:
- Posudek-Vedouci prace-24037_v.pdf
Loading...
- Name:
- Posudek-Oponent prace-24037_o.pdf
- Size:
- 126.3 KB
- Format:
- Adobe Portable Document Format
- Description:
- Posudek-Oponent prace-24037_o.pdf
Loading...
- Name:
- review_136571.html
- Size:
- 1.46 KB
- Format:
- Hypertext Markup Language
- Description:
- file review_136571.html