Memory Representation for Model Checker of C/C++
Memory Representation for Model Checker of C/C++
diplomová práce (OBHÁJENO)
![Náhled dokumentu](/bitstream/handle/20.500.11956/30692/thumbnail.png?sequence=7&isAllowed=y)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/30692Identifikátory
SIS: 62439
Kolekce
- Kvalifikační práce [11264]
Autor
Vedoucí práce
Oponent práce
Kofroň, Jan
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Softwarové systémy
Katedra / ústav / klinika
Katedra softwarového inženýrství
Datum obhajoby
2. 2. 2010
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
V předložené práci je popsán návrh a C++ implementace nově vytvořeného paměťového modulu, který bude použit k reprezentaci paměti zkoumaného programu v GIMPLE Model Checkeru (explicit state model checkeru). Modul se liší od většiny ostatních code model checkerů v tom, že umožňuje uložit do simulované paměti libovolné C++ objekty splňující jisté rozhraní. To umožňuje ukládat například data hodnot spolu s jejich typy, symbolické hodnoty používané při symbolickém vykonávání programu nebo predikáty o hodnotách používané při predikátové abstrakci. Pro efektivní ukládání stavů, kanonikalizaci haldy a výpočet hashe stavu používá modul delta ukládání, inkrementální hashování a inkrementální kanonikalizaci haldy.
We describe the design and C++ implementation of the newly created memory module (MM) in this work. It will be used in the GIMPLE Model Checker, an explicit state model checker, to represent the memory of checked program. MM diers from other code model checkers in the fact, that it stores ordinary C++ objects fullling a given interface as values. This allows to store, e.g., value data together with its type, a symbolic value used in a symbolic execution or a predicate over a stored value used in predicate abstraction. MM uses delta saving, incremental hashing and incremental heap canonicalization to save the state, canonicalize the heap and compute the hash of the state eciently.