PÁ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.

Posudky

Posudek vedoucího

Vojnar, Tomáš

S ohledem na výše podrobněji diskutovanou vysokou náročnost zadání, velký objem poctivé a kreativní práce a vytvoření velmi solidního základu pro další vývoj a výzkum v dané oblasti navrhuji hodnocení stupněm A.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Informace k zadání Práce studenta navázala na jeho předchozí projektovou praxi, a ta navazovala na bakalářskou a diplomovou práci Ondřeje Pavely. Cílem všech těchto prací byla reinkarnace prototypu automatického analyzátoru výkonnosti programů nazvaného Loopus, jenž vytvořil v rámci své disertační práce Moritz Sinn z Technické univerzity ve Vídni. Tento nástroj nabízel řadu originálních rysů, ale po ukončení akademického působení autora se již dále nerozvíjel. Ondřej Pavela reimplementoval tento nástroj do nástroje Looper (verze 1 a pak verze 2) v prostředí Facebook/Meta Infer, a navíc ho rozšířil i o původní koncept meziprocedurální analýzy. Po ukončení jeho studia, ale bohužel zůstal nástroj opět opuštěn. Původním zadáním Jana Pánka bylo proto nástroj převzít a dále rozvíjet. Jan Pánek v tomto směru opravdu začal pracovat a podařilo se mu i několik dílčích vylepšení nástroje Looper verze 2 realizovat. Následně se ale ukázalo, že další rozvoj by již byl velmi problematický jednak s ohledem na to, že prostředí Meta Infer není pro daný typ analýzy vhodný (jak postupně vyšlo najevo), a jednak řada konstrukcí v nástroji Looper verze 2 byla výsledkem experimentování s různými algoritmy a nebyla v příliš udržovatelné podobě. S ohledem na to se následně Jan Pánek zaměřil na zcela novou implementaci do nového nástroje Rebel, který je již od počátku vyvíjen s důrazem na snadnou udržovatelnost a možnost rozšiřování. Zadání práce považuji za dosti náročné. Hlavní příčinou je to, že zahrnulo opravdu velmi velký objem studia a nutnost kombinace práce s různými teoriemi, jazyky a prostředími: od značně pokročilých teoretických základů implementovaných analýz, přes jazyk Ocaml a prostředí Meta Infer, ve kterém byl psán nástroj Looper, po kombinaci jazyků Python, C++ a prostředí LLVM, ve kterém je implementován nástroj Rebel. K náročnosti přispívá také nutnost studia velkého objemu cizího kódu. Student se nicméně s náročným zadáním vypořádal dle mého názoru velmi úspěšně a vytvořil funkční zárodek nového nástroje, který, jak věřím, bude dále rozvíjen.
Práce s literaturou Studentova práce s literaturou byla bezproblémová. Byl sám schopen si dohledat a využít patřičné zdroje, které také řádně cituje. Byl přitom schopen úspěšně nastudovat jak opravdu náročnou teorii, tak také nízkoúrovňové implementační techniky.
Aktivita během řešení, konzultace, komunikace Student byl po celou dobu řešení samostatný, aktivní a kreativní. Na schůzky přicházel vždy pečlivě připravený, prezentoval dosažené pokroky a možnosti dalšího pokračování práce.
Aktivita při dokončování Práce byla dokončena v dostatečném předstihu. Měl jsem možnost práci projít, byť musím konstatovat, že ne všechny dosti komplikované teoretické pasáže jsem byl schopen detailně prostudovat. Oceňuji ale, že na mou prosbu se student snažil o zpřístupnění ještě mnohem techničtějšího podání z disertace Moritze Sinna, včetně doplnění o různé ilustrační příklady.
Publikační činnost, ocenění Práce nebyla dosud publikována formou článku. Kód je ale k dispozici formou open source a věřím tomu, že se stane základem pro další vývoj analýz v dané oblasti, včetně dotažení myšlenek poprvé naznačených v práci Ondřeje Pavely. To by pak mohlo vést na kvalitní publikaci v oboru.
Navrhovaná známka
A
Body
95

Posudek oponenta

Rogalewicz, Adam

Jedná se o práci, která by bez problému obstála jako práce inženýrská, a to jak rozsahem, tak i kvalitou zpracování. Proto navrhuji tuto práci hodnotit stupněm A-výborně.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Náročnost zadání
Rozsah splnění požadavků zadání
Rozsah technické zprávy Jedná se o bakalářskou práci, která svým rozsahem a technickou úrovní splňuje podmínky kladené na práce diplomové.
Prezentační úroveň technické zprávy 95 Práce je dobře strukturovaná a přehledná. Všechny koncepty jsou definovány a představeny. Celkově na čtenáře působí výborným dojmem.
Formální úprava technické zprávy 95 I přes rozsah práce je po formální stránce práce na výborné úrovni. Text je psán anglicky a je bez problému čitelný a pochopitelný.
Práce s literaturou 90 Práce staví na předchozích výsledcích, které dále rozvádí. Není tak divu, že některé definice a principy v úvodních kapitolách jsou částečně převzaty z předchozích prací. Všechny tyto práce jsou citovány.
Realizační výstup 95 Realizační výstup je plně funkční.
Využitelnost výsledků Výstup může posloužit pro další rozvoj zkoumaných technik.
Navrhovaná známka
A
Body
95

Otázky

eVSKP id 162712