Přístupnostní navigace
E-přihláška
Vyhledávání Vyhledat Zavřít
diplomová práce
Autor práce: Ing. František Nečas
Ak. rok: 2023/2024
Vedoucí: Ing. Viktor Malík, Ph.D.
Oponent: prof. Ing. Tomáš Vojnar, Ph.D.
Cílem této práce je navrhnout integraci formálních metod pro DiffKemp, nástroj pro statickou analýzu sémantických rozdílů v rozsáhlých programech napsaných v jazyce C. Cílem tohoto rozšíření je umožnit analýzu složitějších změn, které by typicky byly analyzovatelné spíše nástroji založenými na formálních metodách, a zároveň zachovat škálovatelnost nástroje DiffKemp na velké projekty. Principem navrženého řešení je při analýze v případě nalezení možné sémantické změny zakódovat problém ekvivalence příslušných instrukcí jako instanci problému SMT. Tím je možné sémantický rozdíl potvrdit, nebo vyvrátit s pomocí SMT solveru. Navržené řešení bylo implementováno v nástroji DiffKemp a experimenty provedené na sadě programů zvané EqBench ukazují, že rozšiřuje schopnosti nástroje DiffKemp, převážně v oblasti přesné analýzy úprav aritmetických výrazů.
DiffKemp, statická analýza, sémantické rozdíly, LLVM IR, formální metody, vzory změn v kódu, řešení problému SMT, Z3 solver, Linuxové jádro, sbírka programů EqBench
Termín obhajoby
20.06.2024
Výsledek obhajoby
obhájeno (práce byla úspěšně obhájena)
Klasifikace
A
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 a na další otázky přítomných. 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 k obhajobě
Jazyk práce
angličtina
Fakulta
Fakulta informačních technologií
Ústav
Ústav inteligentních systémů
Studijní program
Informační technologie a umělá inteligence (MITAI)
Specializace
Matematické metody (NMAT)
Složení komise
prof. Ing. Tomáš Vojnar, Ph.D. (předseda) Ing. Martin Hrubý, Ph.D. (člen) Ing. Aleš Smrčka, Ph.D. (člen) Dr. Ing. Petr Peringer (člen) Ing. Radek Hranický, Ph.D. (člen) doc. Ing. Ondřej Lengál, Ph.D. (člen)
Posudek vedoucíhoIng. Viktor Malík, Ph.D.
Overall, this is a high-quality thesis on a complex assignment. The student has demonstrated skills at the level of a PhD student - the ability to independently develop advanced algorithms and methods, explore related work, and write a text adhering to high scientific standards. I also appreciate his time management skills and additional tasks that he fulfilled - contributing to a journal paper on DiffKemp and preparing a formal verification tool 2LS for an international competition.
With respect to all of the above, I propose to evaluate the thesis with the grade A and suggest the committee to consider further awards.
The thesis integrates formal methods into the DiffKemp tool, which is a tool applying advanced static program analysis techniques for checking program equivalence. The tool has been developed by the VeriFIT research group in cooperation with Red Hat. The complexity of the assignment itself is above average since it required to study and understand a complex research project (both the implementation and the related publications), advanced formal methods techniques (SMT solving), and propose and implement a novel approach integrating SMT solving into DiffKemp. The thesis has succeeded to fulfill the assignment and significantly improves the capabilities of DiffKemp in terms of analyzing complicated code refactorings. At the same time, the thesis is a solid base for future work and research.
The activity of the student has been exemplary. He has finished the implementation in great advance and left sufficient time to perform experiments and write the thesis text which I had the opportunity to review several times. Overall, I am very satisfied with the student's approach.
The work has been presented at the student conference Excel@FIT 2024. At the same time, the student has helped with preparing a journal version of a research paper on DiffKemp which is to be submitted to the TOSEM journal (Q1). In addition, as already mentioned, the thesis is a good basis for further research which could potentially result in a publication on an international scientific conference.
I'd also like to mention that František has been collaborating with me since his bachelor study on a different tool for formal verification of C programs called 2LS. Despite switching to a different topic for his Master's thesis, he still managed to help preparing 2LS for this year's volume of International Competition on Software Verification 2024.
The student has used the recommended literature sources as well as he was able to find additional sources by himself. He has well explored the relevant related work.
The student was very active during the entire academic year, we had regular weekly meetings where he almost every time presented new progress with the thesis.
Známka navržená vedoucím: A
Posudek oponentaprof. Ing. Tomáš Vojnar, Ph.D.
Zadání práce je náročnější a má výzkumný charakter. Student zadání jednoznačně splnil, přičemž v rámci práce přispěl k připravovanému časopiseckému článku a vytvořil také východisko k dalšímu výzkumu. Student také našel několik, nyní již opravených chyb v nástroji DiffKemp i v jedné ze sad vzorových testovacích příkladů z dané oblasti, používaných v mezinárodním kontextu. Technická zpráva i realizační dílo jsou velmi kvalitní. Student rovněž prezentoval svou práci na studentské konferenci Excel@FIT 2024.
Stupeň hodnocení: zadání splněno
Zadání práce bylo jednoznačně splněno.
Stupeň hodnocení: je v obvyklém rozmezí
Technická zpráva není objemově nejrozsáhlejší, ale obsahuje jasný popis všeho podstatného. Stručnost v tomto případě hodnotím pozitivně.
Technická zpráva je strukturována logicky, jednotlivé kapitoly a sekce na sebe dobře navazují a mají vhodně zvolený rozsah. Text je až na několik výjimek technicky přesný, velmi dobře čitelný a doprovozený dobře zvolenými ilustračními příklady.
Zmíněné drobné výjimky jsou z mého pohledu dvě: (1) Na straně 17 v bodě 1 mi není jasné, co jsou „sequential code blocks“ a jaká je jejich vazba na základní bloky kódu. (2) V popisu zakódování dotazů na ekvivalenci zvolených bloků kódu do formy SMT problému na konci úvodní části sekce 4.2 (strana 20) by zřejmě měla být nějakým způsobem zajištěna disjunktnost proměnných, s nimiž se pracuje (a která je pak zajištěna příslušným indexováním v příkladu v sekci 4.2.3). Tyto nedostatky nicméně považuji za drobné a současně se vztahující na náročnější pasáže popisu.
Technická zpráva je psána anglicky, a to na velmi vysoké úrovni, jen s minimem chyb (nakolik jsem schopen to posoudit). Rovněž typograficky je technická zpráva na velmi dobré úrovni.
Výběr studijních pramenů je vhodný, zdroje jsou vhodně citovány (snad jen na straně 24 mohla být příslušná citace umístěna uvnitř věty, ne mimo ni).
Realizační výstup je na velmi vysoké úrovni. Vysoce také oceňuji rozsáhlé experimenty, které byly provedeny k vyhodnocení výsledku a které rovněž vedly k nalezení a opravě chyb jak v rozšiřovaném nástroji DiffKemp, tak v jedné z použitých a mezinárodně známých sad testovacích příkladů.
Práce významně rozšiřuje soubor metod používaných nástrojem DiffKemp pro ověřování sémantické shody rozsáhlých nízko-úrovňových programů, které prošly refaktorováním. Nástroj DiffKemp je jedním z klíčových výzkumných projektů mezi společností Red Hat a univerzitami (zejména, ale nejen FIT VUT). Nástroj ještě není prakticky nasazen, ale je zde solidní naděje, že k tomu dojde. Nástroj posouvá hranice poznání v oblasti posuzování sémantické shody na rozsáhlém systémovém kódu. Studentem vytvořené rozšíření sice nerozřešilo velký počet reálných změn v kódu, které dosud DiffKemp nezvládnul, ale několik takových reálných případů se objevilo. Jedná se přitom o první krok k nalezení vhodného způsobu kombinace „leightweight“ přístupů používaných nástrojem DiffKemp jako primárních s „heavyweight“ přístupy, které méně škálují, ale zvládnou ověřit výraznější změny kódu. Další výzkum v této oblasti je předpokládán, včetně studentovy účasti na něm. Student svou prací a experimenty s nástrojem DiffKemp současně přispěl k dokončovanému článku o metodách stojících za nástrojem DiffKemp, který bude zaslán do časopisu ACM TOSEM, WoS IF Q1/AIS Q2 (se studentem jako spoluautorem).
Stupeň hodnocení: obtížnější zadání
Zadání hodnotím jako obtížnější, protože má výzkumný charakter a kombinuje práci s nízko-úrovňovým systémovým kódem (Linuxové jádro, knihovny jazyka C apod.), infrastrukturou překladačů, statickou analýzou i rozhodovacími procedurami pro SMT problémy.
Známka navržená oponentem: A
Odpovědnost: Mgr. et Mgr. Hana Odstrčilová