Přístupnostní navigace
E-přihláška
Vyhledávání Vyhledat Zavřít
bakalářská práce
Autor práce: Bc. Adam Rudolf Hrbáč
Ak. rok: 2023/2024
Vedoucí: Ing. David Kozák
Oponent: Ing. Aleš Smrčka, Ph.D.
GraalPy je implementace jazyka Python pro Java Virtual Machine (JVM), určená pro její vkládání do Java aplikací. Do existujícího kódu Javy lze takto přidávat Python balíčky třetích stran. GraalPy také, ve srovnání s CPython jako referenční implementací Pythonu, často dosahuje vyššího výkonu. Tato práce realizuje dvě významné funkce Pythonu v GraalPy. První, kterou je API pro asynchronní programování, jedna z posledních hlavních funkcí jazyka Python co v GraalPy chyběla, a která se využívá hlavně pro programování webových aplikací, kde umožňuje psaní souběžného kódu bez potřeby vláken použitím takzvaného barevného asynchronního programování, kde programátor musí explicitně anotovat možné změny toku programu. Obsahuje dvě části, knihovnu pro smyčky událostí, v případé této práce asyncio, a syntax pro anotaci změn toku. Druhou funkcí v této práci je trasovací API, tedy API CPythonu pro implementaci ladících nástrojů, nástrojů pro pokrytí kódu testy, apod. Funguje pomocí analýzy bajtkódu Pythonu při kterém se vyhodnocuje zda je spouštěn nový řádek, a pokud ano, je pro něj zavoláno nakonfigurované zpětné volání. Pokud běžící kód vrátí hodnotu, zavolá funkci nebo vyhodí výjimku, použije se znovu toto zpětné volání, což umožní ladícímu nástroji nastavit pro takovouto událost body přerušení. Obě tyto funkce jsou součástí vydané verze GraalPy a mají významný přínos pro kompatibilitu s balíčky třetích stran.
Python, async, debugger, GraalPy
Termín obhajoby
10.06.2024
Výsledek obhajoby
obhájeno (práce byla úspěšně obhájena)
Klasifikace
A
Průběh obhajoby
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 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.
Otázky k obhajobě
Jazyk práce
angličtina
Fakulta
Fakulta informačních technologií
Ústav
Ústav inteligentních systémů
Studijní program
Informační technologie (BIT)
Složení komise
doc. RNDr. Milan Češka, Ph.D. (předseda) Ing. Zbyněk Křivka, Ph.D. (člen) doc. Ing. Peter Chudý, Ph.D., MBA (člen) Ing. Jiří Matoušek, Ph.D. (člen) Ing. Jaroslav Rozman, Ph.D. (člen)
Posudek vedoucíhoIng. David Kozák
Student odvedl vynikající práci. Kladně hodnotím hlavně rozsah a náročnost tématu a také kvalitu implementace. Výsledky práce jsou plně integrovány do překladače využívaného aktivně v průmyslu. Znalosti nezbytné k úspěšné realizaci této práce dalece přesahují typickou úroveň absolventa BP. Text práce a práce s literaturou též přesahuje typický rozsah BP.
Práce je realizována ve spolupráci s firmou Oracle. Svou náročností dalece přesahuje rozsah BP, student musel získat a aplikovat netriviální znalosti v oblasti implementace programovacích jazyků, konkrétně podpory pro asynchronní programovaní a debugging. Práce splnila všechny body zadání, s výsledky jsem velmi spokojen.
Student sám aktivně vyhledával relevantní materiály, na základě kterých svoji práci realizoval.
Student pracoval aktivně, dlouhodobě a zodpovědně. Na konzultace chodil včas a dobře připravený.
Student mě se svojí prací průběžně seznamoval, měl jsem dostatek času si text několikrát projít. Zpětnou vazbu student zodpovědně integroval do textu práce.
Výsledky práce byly integrovány do open-source Python interpretu GraalPy. Práce byla prezentována na studentské konferenci Excel@FIT.
Známka navržená vedoucím: A
Posudek oponentaIng. Aleš Smrčka, Ph.D.
Technická zpráva je na výborné úrovni. Práce obsahuje všechny podstatné části a souhrně dokumentuje přínos. Implementovaná rozšíření nástroje GraalPy jsou funkční a jsou přijata komunitou. Celkový rozsah práce je nadprůměrný.
Stupeň hodnocení: obtížnější zadání
Práce vyžaduje podrobnou znalost interních detailů nejen upravovaného reálného projektu GraalPy, ale také dalších technologií související s překladači a interprety (korutiny, efektivní datové struktury, trasovací technologie).
Technická zpráva má logickou strukturu a lehce se v ní naviguje. Student uvádí čtenáře do problematiky a souvisejících technologií a navazuje na dvě hlavní kapitoly pojednávající o hlavních přínosech práce. Potenciální drobné vylepšení by mohlo být ve strukturalizované analýze požadavků a přesnějším zhodnocení dosažených výsledků.
Z hlediska jazykové a typografické stránky nemám výhrady. Práce je v anglickém jazyce a je čitelná.
K realizačnímu výstupu nemám žádné výhrady. Student pracoval na reálném, aktivním projektu a přispěl celkem s více než 10 tis. řádky (kódu a komentářů). Jeho přínos je identifikovatelný a je již zahrnut do hlavní větve nástroje GraalPy.
Dosažené výsledky (rozšířená podpora interpretu GraalPy) je již využívaná komunitou.
Stupeň hodnocení: zadání splněno
Student splnil zadání v plném rozsahu. V rozšíření se zaměřil právě na asynchronní programy i na zpřístupnění operací pro ladění programů.
Stupeň hodnocení: je v obvyklém rozmezí
Práce s literaturou je bez problémů. Student se odkazuje převážně na internetové zdroje (domovské stránky) zpřízněných SW projektů, což je z ohledem na kategorii projektu pochopitelné. Cituje také odborné publikace, které s tématem souvisejí.
Známka navržená oponentem: A
Odpovědnost: Mgr. et Mgr. Hana Odstrčilová