Generovaní šablon změn kódu v jazyce C
Loading...
Date
Authors
Kučma, Tomáš
ORCID
Advisor
Referee
Mark
A
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoké učení technické v Brně. Fakulta informačních technologií
Abstract
Zabezpečenie sémantickej stability softvérových projektov je často nákladnou úlohou. Nástroj DiffKemp automatizuje tento proces so špeciálnym dôrazom na výkon a použiteľnosť v rozsiahlych projektoch. Cenou za jeho efektívnosť je väčšia nepresnosť oproti formálnym nástrojom. Na minimalizáciu tohto problému DiffKemp umožňuje používateľom definovať vlastné vzory zachovávajúce sémantiku, opisujúce, aké zmeny majú byť považované za ekvivalentné. V súčasnosti je táto podpora obmedzená na vzory napísané v internej reprezentácii LLVM, ktorá nie je priateľská pre používateľa. Cieľom tejto práce je rozšíriť túto podporu na vzory napísané v jazyku C, čo výrazne zjednoduší proces ich vytvárania. To zahŕňa návrh reprezentácie vzorov, ktorá musí byť schopná zakódovať všetky potrebné metainformácie, a následný návrh, implementáciu a testovanie rozšírenia DiffKemp, ktoré umožní využívať vzory zapísané v jazyku C.
Ensuring the semantic stability of software projects is often a costly task. DiffKemp is a tool that automatizes this process, with a special emphasis placed on performance and usability in large-scale projects. A trade-off for its efficiency is a greater degree of inaccuracy compared to formal tools. To minimize this issue, DiffKemp allows users to define their own semantics-preserving patterns, describing what kind of changes are to be treated as equal. Currently, this support is restricted to patterns written in LLVM internal representation, which is not a user-friendly language. The purpose of this work is to extend this capability to patterns written in C, significantly simplifying the process of their creation. This includes a proposal of a representation of the patterns, which must be able to encode all necessary meta-information, and subsequent design, implementation, and testing of a DiffKemp extension that allows utilization of patterns encoded in C.
Ensuring the semantic stability of software projects is often a costly task. DiffKemp is a tool that automatizes this process, with a special emphasis placed on performance and usability in large-scale projects. A trade-off for its efficiency is a greater degree of inaccuracy compared to formal tools. To minimize this issue, DiffKemp allows users to define their own semantics-preserving patterns, describing what kind of changes are to be treated as equal. Currently, this support is restricted to patterns written in LLVM internal representation, which is not a user-friendly language. The purpose of this work is to extend this capability to patterns written in C, significantly simplifying the process of their creation. This includes a proposal of a representation of the patterns, which must be able to encode all necessary meta-information, and subsequent design, implementation, and testing of a DiffKemp extension that allows utilization of patterns encoded in C.
Description
Citation
KUČMA, T. Generovaní šablon změn kódu v jazyce C [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2024.
Document type
Document version
Date of access to the full text
Language of document
en
Study field
Matematické metody
Comittee
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)
Date of acceptance
2024-06-20
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.
Result of defence
práce byla úspěšně obhájena
Document licence
Standardní licenční smlouva - přístup k plnému textu bez omezení