Konverze mezi floaty a string ve string constraint solvingu
Loading...
Date
Authors
Pařízek, Tomáš
Advisor
Referee
Mark
A
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoké učení technické v Brně. Fakulta informačních technologií
ORCID
Abstract
Tato bakalářská práce se zabývá návrhem a implementací metody pro řešení řetězcových omezení s konverzemi mezi řetězci a reálnými čísly. Řešení logických formulí obsahujících řetězce je klíčovou oblastí využívanou při verifikaci programů, analýze bezpečnosti softwarových aplikací, včetně webových a blockchainových řešení nebo při automatickém generování testů. Současné SMT-solvery ovšem převážně podporují pouze konverze mezi řetězci a celými čísly. Tato práce proto rozšiřuje stabilizační přístup solveru Z3-Noodler o převody mezi reálnými čísly a řetězci, čímž zobecňuje algoritmy původně navržené pouze pro čísla celá. Nově implementované rozšíření je integrováno do solveru Z3-Noodler a využívá iterativní zpřesňování regulárních omezení reprezentovaných automaty, dokud není nalezeno stabilní řešení splňující daná omezení. Experimentální výsledky ukazují, že tato nová funkcionalita řeší úlohy s reálnými čísly efektivně a dosahuje výkonu srovnatelného s existujícími metodami pro celočíselné vstupy.
This bachelor's thesis deals with the design and implementation of a method for solving string constraints with string-float conversion. Solving logical formulae containing strings is a key area used in program verification, security analysis of software applications, including web and blockchain solutions, or in automatic test generation. However, current SMT-solvers mainly support only conversions between strings and integers. Therefore, this work extends the stabilization approach of the Z3-Noodler solver to include conversions between real numbers and strings, thus generalizing algorithms originally designed only for integers. The newly implemented extension is integrated into the Z3-Noodler solver and uses iterative refinement of regular constraints represented by automata until a stable solution satisfying the given constraints is found. Experimental results show that this new functionality solves problems with real numbers efficiently and achieves performance comparable to existing methods for integer inputs.
This bachelor's thesis deals with the design and implementation of a method for solving string constraints with string-float conversion. Solving logical formulae containing strings is a key area used in program verification, security analysis of software applications, including web and blockchain solutions, or in automatic test generation. However, current SMT-solvers mainly support only conversions between strings and integers. Therefore, this work extends the stabilization approach of the Z3-Noodler solver to include conversions between real numbers and strings, thus generalizing algorithms originally designed only for integers. The newly implemented extension is integrated into the Z3-Noodler solver and uses iterative refinement of regular constraints represented by automata until a stable solution satisfying the given constraints is found. Experimental results show that this new functionality solves problems with real numbers efficiently and achieves performance comparable to existing methods for integer inputs.
Description
Citation
PAŘÍZEK, T. Konverze mezi floaty a string ve string constraint solvingu [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2025.
Document type
Document version
Date of access to the full text
Language of document
en
Study field
Informační technologie
Comittee
doc. RNDr. Milan Češka, Ph.D. (předseda)
Ing. Zbyněk Křivka, Ph.D. (člen)
Ing. Zdeněk Materna, Ph.D. (člen)
doc. Ing. Jan Kořenek, Ph.D. (člen)
Ing. Jaroslav Rozman, Ph.D. (člen)
Date of acceptance
2025-06-16
Defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A.
Result of defence
práce byla úspěšně obhájena
