Porovnání Frama-C a Stainless
Comparison of Frama-C and Stainless
Typ dokumentu
diplomová prácemaster thesis
Autor
Luboš Zápotočný
Vedoucí práce
Knop Dušan
Oponent práce
Hušek Radek
Studijní obor
Teoretická informatikaStudijní program
InformatikaInstituce přidělující hodnost
katedra teoretické informatikyPráva
A university thesis is a work protected by the Copyright Act. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one?s own expense. The use of thesis should be in compliance with the Copyright Act http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf and the citation ethics http://knihovny.cvut.cz/vychova/vskp.htmlVysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf a citační etikou http://knihovny.cvut.cz/vychova/vskp.html
Metadata
Zobrazit celý záznamAbstrakt
Formální verifikace se zabývá dokazováním správnosti programů na základě matematických metod a logiky. Ověřené programy díky tomu poskytují záruku, že pracují v souladu s předem definovanou specifikací za všech okolností a výrazně tak snižují riziko kritických chyb, které by tradiční testování mohlo přehlédnout. Tato diplomová práce se věnuje teoretickým aspektům formální verifikace a studiu dostupných nástrojů pro automatizované dokazování (SMT řešičů), jako jsou Alt-Ergo, CVC4/5 a Z3. Popisuje jejich integraci v prostředích Frama-C (pro jazyk C) a Stainless (pro jazyk Scala) a zároveň porovnává přístupy obou nástrojů na praktickém příkladu formálně verifikované implementace datové struktury AVL stromu, přičemž klade důraz na rozbor rozdílů v dokazování pomocí těchto dvou frameworků. Formal verification deals with proving the correctness of programs based on mathematical methods and logic. Verified programs thus provide a guarantee that they work according to a predefined specification under all circumstances and significantly reduce the risk of critical errors that traditional testing might miss. This thesis explores the theoretical aspects of formal verification and studies available automated proof tools (SMT solvers) such as Alt-Ergo, CVC4/5 and Z3. It describes their integration in the Frama-C (for C) and Stainless (for Scala) environments, and also compares the approaches of the two tools on a practical example of a formally verified implementation of an AVL tree data structure, emphasizing the analysis of the differences in proofs using the two frameworks.
Kolekce
- Diplomové práce - 18101 [227]