Browsing by Author "Saan, Simmo, juhendaja"
Now showing 1 - 5 of 5
- Results Per Page
- Sort Options
Item Abstraktne silur Goblintile(Tartu Ülikool, 2023) Hennoste, Juhan Oskar; Saan, Simmo, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutStaatiline analüüs on kasulik meetod programmi omaduste tuvastamiseks ilma programmi jooksutamata. Goblint on Tartu Ülikoolis arendatav staatiline analüsaator C keelele. Staatilise analüüsi käigus tuvastab Goblint palju programmi omadusi, näiteks muutujate võimalike väärtusi programmi eri punktides. Need tulemused on kasulikud nii analüüsitava programmi kui ka Goblinti analüüside käitumise mõistmiseks, kuid hetkel puudub nende kuvamiseks hea viis. Olemasolevad tööriistad esitavad info toorel ja raskesti tõlgendataval kujul. Selles töös luuakse esmane versioon ühest võimalikust lähenemisest selle info kuvamiseks. Loodud lahendus on nn abstraktne silur, mis kasutab tavalise siluri (debugger) kasutajaliidest, kuid selle asemel et programmi jooksutada, kasutab abstraktne silur Goblinti analüüsi tulemusi, et simuleerida programmi jooksutamist. Selles töös realiseeritakse siluri esmane versioon ning kogutakse sellele tagasisidet Goblinti arendajatelt. Loodud abstraktne silur on mitmes aspektis edasiminek võrreldes olemasolevate tööriistadega Goblinti analüüsi tulemuste uurimiseks.Item Adapting an Alarm Repositioning Algorithm to Data Races(Tartu Ülikool, 2023) Holter, Karoliine; Vojdani, Vesal, juhendaja; Saan, Simmo, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutThis master’s thesis addresses the challenge of enhancing the usability of sound static analyzers, specifically focusing on the state-of-the-art data race verifier Goblint. The aim is to soundly post-process the warnings generated by Goblint to make them more understandable for developers, thereby increasing the adoption of sound analyzers in practice. The thesis adapts and extends the warning repositioning algorithm of Muske et al. for data race warnings in multi-threaded C programs. Contributions include identifying and implementing a potential solution within the Goblint analyzer, extending the method for data races, and evaluating and analyzing the adapted algorithm in terms of the reduced distance between possible causes and warnings, as well as the impact on the quality of data race warnings.Item GobExec: programmianalüsaatorite hindamisraamistik(Tartu Ülikool, 2024) Petnjunas, Evaldas; Saan, Simmo, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutGoblint is a static program analysis tool which uses a benchmarking suite for ensuring soundness and effectiveness of its analyses. The current solution for benchmarking relies on a set of Ruby scripts which have become unmaintainable and difficult to extend. This thesis describes a unified benchmarking framework for program analysis tools in Python programming language. The framework provides at least the same functionality as the old solution for benchmarking, while making the porting and replacing of old benchmarking scripts to Python possible. The new framework makes extending and maintaining the functionality of the benchmarking suite easier, as most of the framework’s code is shared across different modules. The solution was validated by first porting old scripts to Python using the new framework and then comparing them to scripts from the old benchmarking suite. The ported scripts are much simpler but retain the same functionality and benchmarking results.Item Java andmevoogude implementatsioonide analüüs ja võrdlus DataStream'i ning ObjectStream’i näitel(Tartu Ülikool, 2021) Liik, Del Remi; Saan, Simmo, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutMitmetest osadest koosnevates infotehnoloogilistes süsteemides omandab tihti kriitilise tähtsuse andmevahetus nende süsteemide erinevate osade vahel. Java programmeerimis-keeles kirjutatud süsteemides on üheks serveritevahelise andmevahetuse rakendamise võimaluseks kasutada andmevoogusid. Käesolevas bakalaureusetöös tutvustati Java andmevoogude loogilist tausta ja implementeeriti kolm erinevat andmevoogudega serveritevahelise andmevahetuse lahendust, millest kaks kasutasid DataStream’i ja üks ObjectStream’i. Implementeeritud lahendusi analüüsiti ning võrreldi implementeerimise protsessi ja jõudluse põhjal. Järeldati, et erinevatel implementatsioonidel on erinevad tugevad ja nõrgad küljed ning et nende seast üheselt parimat valida ei ole võimalik. Võrreldud lahendustele pakuti sobilikke kasutusvaldkondi.Item Laiendamisoperaatorid abstraktses interpretaatoris Goblint(Tartu Ülikool, 2024) Judin, Ronald; Saan, Simmo, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutStatic analysis of programs is used to ensure the correctness and safety of software. Abstract interpretation is a method of static analysis used by the abstract interpretator Goblint. Widening is a method in abstract interpretation to ensure the convergence of analysis of cycles. There are many widening operators defined in Goblint. This paper describes them and the implementation of new ones. The newly implemented widening operators were successfully tested.