Témata prací (Výběr práce)Témata prací (Výběr práce)(verze: 368)
Detail práce
   Přihlásit přes CAS
Statická analýza NumPy programů
Název práce v češtině: Statická analýza NumPy programů
Název v anglickém jazyce: Static Analysis of NumPy Programs
Klíčová slova: statická analýza|NumPy|data-flow analýza|symbolic execution
Klíčová slova anglicky: static analysis|NumPy|data-flow analysis|symbolic execution
Akademický rok vypsání: 2022/2023
Typ práce: bakalářská práce
Jazyk práce: čeština
Ústav: Katedra distribuovaných a spolehlivých systémů (32-KDSS)
Vedoucí / školitel: doc. RNDr. Jan Kofroň, Ph.D.
Řešitel: skrytý - zadáno a potvrzeno stud. odd.
Datum přihlášení: 16.03.2023
Datum zadání: 24.03.2023
Datum potvrzení stud. oddělením: 11.04.2023
Datum a čas obhajoby: 07.09.2023 09:00
Datum odevzdání elektronické podoby:19.07.2023
Datum odevzdání tištěné podoby:19.07.2023
Datum proběhlé obhajoby: 07.09.2023
Oponenti: Mgr. Martin Blicha, Ph.D.
 
 
 
Zásady pro vypracování
Při programování výpočtů s maticemi je potřeba dbát na kompatibilitu rozměrů matic. Jedním z nejčastějších nástrojů pro práci s maticemi je knihovna NumPy pro programovací jazyk Python. Python je ale interpretovaný jazyk, a jakékoliv kontroly se tedy provádějí až za běhu programu. Problémy se tedy často projeví až poté, co program již nějakou dobu běží. Jelikož NumPy se používá hlavně při výpočtech s velkými daty, může takový program běžet dlouhou dobu a chyba se projeví až na konci programu. Tím se výrazně prodlužuje ladící cyklus vývoje programu.

Tomuto problému se dá částečně předejít statickou analýzou programu. Existující nástroje však umějí odhalit pouze chybné použití jazyka Python a nikoliv nesprávné použití knihovny NumPy ve výše uvedeném smyslu. Ani nástroje pro typovou analýzu neumějí rozlišit matice různých rozměrů, protože z pohledu jazyka jde o stejný typ. Rozměry matic navíc často nejsou dopředu známé.
 
Cílem této práce je použít metody statické analýzy k identifikaci chyb plynoucí z nekompatibilních rozměrů matic, a to pomocí kombinace dataflow analýzy se symbolickou exekucí. Pomocí dataflow bude provedena základní typovou analýzu. Rozměry matic a jejich kompatibilita bude poté analyzována symbolickou exekucí. Výsledkem práce bude návrh a implementace přístupu v nástroji pro analýzu zdrojových kódů v jazyce Python používajících knihovnu NumPy pro příkazovou řádku, který identifikuje potenciální problémy výše uvedeného charakteru.
Seznam odborné literatury
[1] Programovací jazyk Python - https://docs.python.org/3/reference/index.html
[2] Knihovna NumPy - https://numpy.org/
[3] Introduction to Static Analysis - An Abstract Interpretation Perspective, Xavier Rival and Kwangkeun Yi, ISBN: 9780262043410, February 11, 2020, The MIT Press
 
Univerzita Karlova | Informační systém UK