Aplikace formálních metod v analýze sémantických rozdílů mezi verzemi software
but.committee | 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) Ing. Ondřej Lengál, Ph.D. (č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 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. | cs |
but.jazyk | angličtina (English) | |
but.program | Informační technologie a umělá inteligence | cs |
but.result | práce byla úspěšně obhájena | cs |
dc.contributor.advisor | Malík, Viktor | en |
dc.contributor.author | Nečas, František | en |
dc.contributor.referee | Vojnar, Tomáš | en |
dc.date.created | 2024 | cs |
dc.description.abstract | 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ů. | en |
dc.description.abstract | The goal of this work is to propose an integration of formal methods into DiffKemp, a static analysis tool for analyzing semantic differences of large-scale C projects. The aim of this extension is to facilitate analysis of more complex code changes, which would typically be better handled by a tool based on formal methods, while also maintaining DiffKemp’s scalability to large projects. To achieve this, whenever a possible semantic change is found, the equivalence of the relevant instructions is encoded into an SMT problem instance and the difference is either confirmed or refuted using an SMT solver. The proposed solution has been implemented in DiffKemp and our experiments on a set of benchmarks called EqBench show that it extends the capabilities of DiffKemp, mainly with regards to sound analysis of refactorings of arithmetic expressions. | cs |
dc.description.mark | A | cs |
dc.identifier.citation | NEČAS, F. Aplikace formálních metod v analýze sémantických rozdílů mezi verzemi software [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2024. | cs |
dc.identifier.other | 157112 | cs |
dc.identifier.uri | http://hdl.handle.net/11012/249016 | |
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 | statická analýza | en |
dc.subject | sémantické rozdíly | en |
dc.subject | LLVM IR | en |
dc.subject | formální metody | en |
dc.subject | vzory změn v kódu | en |
dc.subject | řešení problému SMT | en |
dc.subject | Z3 solver | en |
dc.subject | Linuxové jádro | en |
dc.subject | sbírka programů EqBench | en |
dc.subject | DiffKemp | cs |
dc.subject | static analysis | cs |
dc.subject | semantic differences | cs |
dc.subject | LLVM IR | cs |
dc.subject | formal methods | cs |
dc.subject | code change pattern | cs |
dc.subject | SMT solving | cs |
dc.subject | Z3 solver | cs |
dc.subject | Linux kernel | cs |
dc.subject | EqBench benchmark | cs |
dc.title | Aplikace formálních metod v analýze sémantických rozdílů mezi verzemi software | en |
dc.title.alternative | Applying formal methods to analysis of semantic differences between versions of software | cs |
dc.type | Text | cs |
dc.type.driver | masterThesis | en |
dc.type.evskp | diplomová práce | cs |
dcterms.dateAccepted | 2024-06-20 | cs |
dcterms.modified | 2024-06-20-15:34:56 | cs |
eprints.affiliatedInstitution.faculty | Fakulta informačních technologií | cs |
sync.item.dbid | 157112 | en |
sync.item.dbtype | ZP | en |
sync.item.insts | 2025.03.26 15:38:35 | en |
sync.item.modts | 2025.01.15 20:00:04 | en |
thesis.discipline | Matematické metody | cs |
thesis.grantor | Vysoké učení technické v Brně. Fakulta informačních technologií. Ústav inteligentních systémů | cs |
thesis.level | Inženýrský | cs |
thesis.name | Ing. | cs |