Abstract interpretation of pandas
Abstract interpretation of pandas
bakalářská práce (OBHÁJENO)
![Náhled dokumentu](/bitstream/handle/20.500.11956/192042/thumbnail.png?sequence=8&isAllowed=y)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/192042Identifikátory
SIS: 269371
Kolekce
- Kvalifikační práce [10926]
Autor
Vedoucí práce
Oponent práce
Parízek, Pavel
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Informatika se specializací Obecná informatika
Katedra / ústav / klinika
Katedra distribuovaných a spolehlivých systémů
Datum obhajoby
28. 6. 2024
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Čeština
Známka
Výborně
Klíčová slova (česky)
pandas|python|program analysis|abstract interpretationKlíčová slova (anglicky)
pandas|python|program analysis|abstract interpretationPandas je oblíbená knihovna pro manipulaci a analýzu dat v Pythonu. Kód napsaný s Pandas nemá žádné typové kontroly a vše je rozhodováno za běhu programu. To může být zdrojem chyb a pádu celého programu za běhu. Jeden ze způsobů jak tento problém řešit je použít jiný, staticky typovaný, jazyk a knihovnu se silnějšími bezpečnostními záru- kami a kompilačními kontrolami. Takové řešení se však nerozšířilo kvůli horší uživatelské přívětivosti. Alternativní cesta by mohla být použítí metody Abstraktní Interpretace ke kontrole programu před jeho během. Cílem této práce je navrhnout způsob jak vyu- žít Abstraktni Interpretaci k analýze programů pro manipulaci s daty, a implementovat analyzátor pro knihovnu Pandas. Schopnosti implementovaného analyzátoru budou zhod- noceny na několika malých avšak realistických případových studiích.
Pandas is a Python library widely used for data-manipulation. The code written with Pandas lacks any type-safety and everything is decided at runtime. This can potentially be a source of errors and crashes at runtime. One way to deal with that is to use another, type-safe, language and a library with better safety guarantees and compile-time checks. This approach is not widely used as it is not very user-friendly. An alternative approach could be to use program verification method Abstract Interpretation to perform some checks before the run of the program. The goal of this thesis is to design a framework for analyzing data-manipulation programs and implement an analyzer for the Pandas library. The framework will be based on the Abstract Interpretation. The capabilities of the resulting analyzer will be evaluated on a set of small but realistic case studies.