Detail práce

Applying Code Change Patterns during Analysis of Program Equivalence

Bakalářská práce Student: Šilling Petr Akademický rok: 2020/2021 Vedoucí: Malík Viktor, Ing.
Název česky
Použití šablon změn kódu počas analýzy ekvivalence programů
Jazyk práce
anglický
Abstrakt

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.

Klíčová slova

DiffKemp, SimpLL, LLVM, Clang, GNU/Linux kernel, porovnávání vzorů změn kódu, reprezentace vzorů změn kódu, izomorfismus podgrafů, analýza sémantických rozdílů mezi programy, refaktorovací vzory, LLVM metadata, vnitřní reprezentace LLVM, graf toku řízení, odstraňování falešně pozitivních hlášení

Ústav
Studijní program
Informační technologie
Soubory
Stav
obhájeno, hodnocení A
Obhajoba
15. června 2021
Oponent
Průběh obhajoby

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
  1. Jak je řešeno pořadí aplikování šablon? Je aplikování šablon nezávislé na pořadí?
  2. 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?. 
  3. Diskutujte vliv Vašeho řešení na míru falešných pozitiv (nejlépe na experimentech uvedených v práci).
Komise
Vojnar Tomáš, prof. Ing., Ph.D. (UITS FIT VUT), předseda
Kořenek Jan, doc. Ing., Ph.D. (UPSY FIT VUT), člen
Peringer Petr, Dr. Ing. (UITS FIT VUT), člen
Ryšavý Ondřej, doc. Ing., Ph.D. (UIFS FIT VUT), člen
Citace
ŠILLING, Petr. Applying Code Change Patterns during Analysis of Program Equivalence. Brno, 2021. Bakalářská práce. Vysoké učení technické v Brně, Fakulta informačních technologií. 2021-06-15. Vedoucí práce Malík Viktor. Dostupné z: https://www.fit.vut.cz/study/thesis/24037/
BibTeX
@bachelorsthesis{FITBT24037,
    author = "Petr \v{S}illing",
    type = "Bakal\'{a}\v{r}sk\'{a} pr\'{a}ce",
    title = "Applying Code Change Patterns during Analysis of Program Equivalence",
    school = "Vysok\'{e} u\v{c}en\'{i} technick\'{e} v Brn\v{e}, Fakulta informa\v{c}n\'{i}ch technologi\'{i}",
    year = 2021,
    location = "Brno, CZ",
    language = "english",
    url = "https://www.fit.vut.cz/study/thesis/24037/"
}
Nahoru