Lõputöö teema: Abstraktsed pinujäljed Goblinti väljundis.

Goblint on staatiline programmianalüsaator C keele jaoks, mis keskendub andmejooksude tuvastamise ja andmejooksu-vabaduse tõestamisele. Lihtsustatult tähendab see seda, et Goblint saab kasutajalt sisendiks mitmelõimelise programmi lähtekoodi ja otsustab, kas kõik globaalsed muutujad on korrektselt lukkudega kaitstud.

Juhul, kui Goblint kahtlustab, et on leidnud vea, väljastab ta hoiatuse. Selliste hoiatuste ning muu goblinti väljundi järgi peab kasutaja suutma otsustada, kas tegemist on tõepoolest ohtliku olukorraga. See ei pruugi aga olla lihtne, kui vea põhjus ei asu ühes C funktsioonis vaid on jaotunud mitme funktsiooni vahele. Sellisel juhul tuleb Goblinti kasutajal kogu uuritav programm läbi vaadata, et otsida veateate põhjustanud funktsiooni väljakutset.

Tegelikult on Goblintil teada kõik vajalik, et otsustada, millistest kohtadest veaga lõppenud funktsiooni (ja kõiki analüüsitud funktsioone) kutsutakse. See info tuleks kokku koguda, ning selle põhjal vastavad graafid joonistada. Siin peab muidugi otsustama, milline väljundi stiil kõige sobivam on.

Kuna Goblint on ise kirjutatud OCaml keeles, siis tuleks ka see pinujälgede osa samas keeles teha.