Bakalářská práce

Automatická analýza neúplných programů

Automatic analysis of incomplete programs

Jakub Šárník
Anotace

Nástroje precizní automatické analýzy programů často vyžadují, aby byl program kompletním uzavřeným celkem, který je možné interpretovat. V průběhu vývoje softwarových systémů však dává smysl analyzovat i jejich neúplné fragmenty, jako jsou knihovny či samostatné funkce. Na rozdíl od kompletních programů není obecně možné ve fragmentech programů najít chyby nezávislé na jejich vstupních parametrech …více

Abstract

Precise automatic analysis tools for computer programs usually expect their inputs to be complete programs that can interpreted. However, analysis of incomplete program fragments is often desirable during development process of a software system. In contrast to a complete program, we usually cannot expect to find errors independent of parameter values in a program fragment. The total amount of possible …více

Zadání práce
Cílem práce je navrhnout algoritmus pro automatické hledání chyb ve fragmentech programů (funkcích, překladových jednotkách, knihovnách). Protože není k dispozici kompletní program, který by bylo lze spustit, jedná se o formu statické analýzy. Algoritmus by měl být nicméně postaven nad existující rozhodovací procedurou pro hledání chyb, resp. dokazování jejich absence, v kompletních programech. Protože vstupem této procedury je kompletní spustitelný program, tato může využívat technik přesnější dynamické analýzy. Navrhovaný algoritmus by tedy měl vstupní fragment programu vhodně doplnit na kompletní program tak, aby chyby ve vstupním fragmentu odpovídaly chybám ve výstupním programu. Z povahy věci je zřejmé, že ne každá chyba v doplněném programu odpovídá skutečné chybě ve vstupním fragmentu: navrhovaný algoritmus by měl nicméně množství takovýchto „falešných“ chyb minimalizovat. Součástí algoritmu by měl být výpočet (podle možnosti nejslabších možných) vstupních podmínek relevantních celků vstupního fragmentu. Součástí práce je prototypová implementace postavená na mezireprezentaci LLVM a dynamické analýze poskytované nástrojem DIVINE. Očekává se, že prototyp bude schopen zpracovat programy, které pracují s celočíselnými skaláry. Podpora práce s pamětí nechť je volitelným rozšířením.
Práce zkontrolována:
23. 5. 2022 09:45, RNDr. Petr Ročkai, Ph.D., učo 139761
Jazyk práce
čeština čeština
Termín obhajoby
28. 6. 2022
Práce byla úspěšně obhájena

Vedoucí

RNDr. Petr Ročkai, Ph.D., učo 139761
KPSK FI MU

Oponent

prof. RNDr. Jan Strejček, Ph.D., učo 3366
KTP FI MU

Masarykova univerzita Fakulta informatiky
Studijní program
Aplikovaná informatika

Práce na příbuzné téma

Seznam prací, které mají shodná klíčová slova.

  • Přidání souboru

    Soubor nebo složku lze nahrát pomocí tlačítka Přidat.
  • Další operace se soubory

    Podrobnosti lze zjistit označením příslušného řádku.
  • Pohled pro experty

    Pro častou práci je možné zvolit režim Více možností.
  • Vyhledávání souborů

    Vyhledávaný výraz můžete zadat přímo do adresního řádku.
  • Rychlý přístup k souborům

    Pomocí funkce Nedávné je možné se rychle vrátit k právě prohlíženým souborům. Oblíbené soubory je také možné označit Hvězdičkou.