Zdokonalená analýza výkonnosti v nástroji Looper

but.committeedoc. Ing. František Zbořil, CSc. (předseda) Ing. Aleš Smrčka, Ph.D. (člen) Ing. Jan Pluskal, Ph.D. (člen) doc. Ing. Michal Španěl, Ph.D. (člen) Ing. Josef Strnadel, Ph.D. (č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 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.jazykangličtina (English)
but.programInformační technologiecs
but.resultpráce byla úspěšně obhájenacs
dc.contributor.advisorVojnar, Tomášen
dc.contributor.authorPánek, Janen
dc.contributor.refereeRogalewicz, Adamen
dc.date.created2025cs
dc.description.abstractNáš nástroj REBEL je statický analýzátor pro odvozování co nejtěsnějších horních mezí ceny vykonávání imperativních nerekurzivních programů. REBEL je nástupcem nástroje Looper v2. Oba nástroje REBEL a Looper v2 jsou reimplementací nástroje LOOPUS, který využívá model programu zvaný zvaný difference constraint program k posouzení kumulativního přírůstku hodnot výrazů omezujících provádění jednotlivých cyklů v programu. Hodnoty těchto výrazů se mění prostřednictvím lineárních inkrementů, dekrementů a resetů v důsledku provádění programu. Lineární inkrementy, dekrementy a resety jsou modelovány pomocí tzv. difference constraints (nerovnosti typu + ), které umožňují přirozeným způsobem modelovat typické modifikace čítačů cyklů. Inkrementy a dekrementy tvaru = + jsou modelovány jako + a resety tvaru = jsou modelovány jako + 0. Na rozdíl od nástroje Looper v2, který byl implementován jako zásuvný modul v prostředí Meta Infer, tato práce představuje novou architekturu našeho nástroje REBEL, která se opírá o infrastrukturu LLVM a je implementována pomocí C++ a Pythonu, aby umožnila rychlé prototypování nových rozšíření při zachování možnosti optimalizace výkonu. Výkon našeho nástroje REBEL byl vyhodnocen na několika testovacích sadách a porovnán s výkonem nástroje Looper v2 a dvěma dalšími analyzátory Cost a KoAT.en
dc.description.abstractOur tool REBEL is a static analysis tool for inference of as tight as possible upper bounds on the execution cost of imperative non-recursive programs. REBEL is a succesor of the tool called Looper v2. Both REBEL and Looper v2 are reimplementations of the tool called LOOPUS which uses a program model called a difference constraint program to reason about the cumulative gain in the values of expressions constraining execution of individual loops in the program. The values of such expressions are updated through linear increments, decrements, and resets as a result of the program execution. The linear increments, decrements and resets are modelled using so-called difference constraints (inequalities of the from + ), which allow for natural abstraction of common loop counter updates. In particular, increments and decrements of the form = + are modeled as + , and reset of the form = are modelled as + 0. In constrast to Looper v2, which was implemeted as an analysis plugin in the Meta Infer framework, this thesis presents a new architecture of our tool REBEL which relies on the LLVM compiler infrastructure and is implemented using C++ and Python, to allow fast prototyping of new extensions while preserving the posibility for performance optimizations. The performance of our REBEL was evaluated on several test suits and compared to the performance of Looper v2 and two more analyzers Cost and KoAT.cs
dc.description.markAcs
dc.identifier.citationPÁNEK, J. Zdokonalená analýza výkonnosti v nástroji Looper [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2025.cs
dc.identifier.other162712cs
dc.identifier.urihttp://hdl.handle.net/11012/253700
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.subjectStatická analýzaen
dc.subjectanalýza mezíen
dc.subjectanalýza složitostien
dc.subjectamortizovaná analýzaen
dc.subjectLoopusen
dc.subjectLooperen
dc.subjectREBELen
dc.subjectanalýza cenyen
dc.subjectdifference constraintsen
dc.subjectLLVMen
dc.subjectimperativní programy.en
dc.subjectStatic analysiscs
dc.subjectbound analysiscs
dc.subjectcomplexity analysiscs
dc.subjectamortized complexitycs
dc.subjectLoopuscs
dc.subjectLoopercs
dc.subjectREBELcs
dc.subjectcost analysiscs
dc.subjectdifference constraintscs
dc.subjectLLVMcs
dc.subjectimperative Programs.cs
dc.titleZdokonalená analýza výkonnosti v nástroji Looperen
dc.title.alternativeImproved Static Performance Analysis in Loopercs
dc.typeTextcs
dc.type.driverbachelorThesisen
dc.type.evskpbakalářská prácecs
dcterms.dateAccepted2025-06-18cs
dcterms.modified2025-06-18-12:48:01cs
eprints.affiliatedInstitution.facultyFakulta informačních technologiícs
sync.item.dbid162712en
sync.item.dbtypeZPen
sync.item.insts2025.08.26 23:06:51en
sync.item.modts2025.08.26 19:46:43en
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 - 2 of 2
Loading...
Thumbnail Image
Name:
final-thesis.pdf
Size:
1003.95 KB
Format:
Adobe Portable Document Format
Description:
file final-thesis.pdf
Loading...
Thumbnail Image
Name:
review_162712.html
Size:
10.54 KB
Format:
Hypertext Markup Language
Description:
file review_162712.html

Collections