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.
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.
| 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. |
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ě.
| 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. |
eVSKP id 162712