Použití šablon změn kódu počas analýzy ekvivalence programů

but.committeeprof. 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.defenceStudent 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.jazykangličtina (English)
but.programInformační technologiecs
but.resultpráce byla úspěšně obhájenacs
dc.contributor.advisorMalík, Viktoren
dc.contributor.authorŠilling, Petren
dc.contributor.refereeFiedor, Tomášen
dc.date.accessioned2021-06-20T06:54:06Z
dc.date.available2021-06-20T06:54:06Z
dc.date.created2021cs
dc.description.abstractCí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.abstractThe 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.markAcs
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.other136571cs
dc.identifier.urihttp://hdl.handle.net/11012/199411
dc.language.isoencs
dc.publisherVysoké učení technické v Brně. Fakulta informačních technologiícs
dc.rightsStandardní licenční smlouva - přístup k plnému textu bez omezenícs
dc.subjectDiffKempen
dc.subjectSimpLLen
dc.subjectLLVMen
dc.subjectClangen
dc.subjectGNU/Linux kernelen
dc.subjectporovnávání vzorů změn kóduen
dc.subjectreprezentace vzorů změn kóduen
dc.subjectizomorfismus podgrafůen
dc.subjectanalýza sémantických rozdílů mezi programyen
dc.subjectrefaktorovací vzoryen
dc.subjectLLVM metadataen
dc.subjectvnitřní reprezentace LLVMen
dc.subjectgraf toku řízeníen
dc.subjectodstraňování falešně pozitivních hlášeníen
dc.subjectDiffKempcs
dc.subjectSimpLLcs
dc.subjectLLVMcs
dc.subjectClangcs
dc.subjectGNU/Linux kernelcs
dc.subjectcode change pattern matchingcs
dc.subjectcode change pattern representationcs
dc.subjectsubgraph isomorphismcs
dc.subjectsemantic difference analysiscs
dc.subjectrefactoring patternscs
dc.subjectLLVM metadatacs
dc.subjectLLVM intermediate representationcs
dc.subjectcontrol-flow graphcs
dc.subjectelimination of false-positive reportscs
dc.titlePoužití šablon změn kódu počas analýzy ekvivalence programůen
dc.title.alternativeApplying Code Change Patterns during Analysis of Program Equivalencecs
dc.typeTextcs
dc.type.driverbachelorThesisen
dc.type.evskpbakalářská prácecs
dcterms.dateAccepted2021-06-15cs
dcterms.modified2021-06-19-12:15:56cs
eprints.affiliatedInstitution.facultyFakulta informačních technologiícs
sync.item.dbid136571en
sync.item.dbtypeZPen
sync.item.insts2021.11.12 16:01:57en
sync.item.modts2021.11.12 14:52:55en
thesis.disciplineInformační technologiecs
thesis.grantorVysoké učení technické v Brně. Fakulta informačních technologií. Ústav inteligentních systémůcs
thesis.levelBakalářskýcs
thesis.nameBc.cs
Files
Original bundle
Now showing 1 - 4 of 4
Loading...
Thumbnail Image
Name:
final-thesis.pdf
Size:
896.93 KB
Format:
Adobe Portable Document Format
Description:
final-thesis.pdf
Loading...
Thumbnail Image
Name:
Posudek-Vedouci prace-24037_v.pdf
Size:
86.78 KB
Format:
Adobe Portable Document Format
Description:
Posudek-Vedouci prace-24037_v.pdf
Loading...
Thumbnail Image
Name:
Posudek-Oponent prace-24037_o.pdf
Size:
126.3 KB
Format:
Adobe Portable Document Format
Description:
Posudek-Oponent prace-24037_o.pdf
Loading...
Thumbnail Image
Name:
review_136571.html
Size:
1.46 KB
Format:
Hypertext Markup Language
Description:
review_136571.html
Collections