Soothsharp: A C#-to-Viper translator
Soothsharp: překladač C# do jazyka Viper
diploma thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/90340Identifiers
Study Information System: 183413
Collections
- Kvalifikační práce [11242]
Author
Advisor
Referee
Ježek, Pavel
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Software and Data Engineering
Department
Department of Distributed and Dependable Systems
Date of defense
6. 9. 2017
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Excellent
Keywords (Czech)
verifikace, programovací jazyky, kontrakty, oprávněníKeywords (English)
verification, programming languages, contracts, permissionsViper je verifikační infrastruktura vyvíjená na univerzitě ETH v Curychu. Pomocí této infrastruktury se dá ověřit, zda programy napsané v jazyku Viper vyhovují svým deklarovaným kontraktům a invariantům. V této práci vyvíjíme knihovnu kontraktů a překladač, který zkompiluje kód v jazyku C# do jazyku Viper, a tak umožní jeho verifikaci. Uživatel může anotovat svůj program těmito kontrakty a pak použít překladač, aby určil, zda je program funkčně korektní. Překladač podporuje podstatnou podmnožinu funkcí jayzku C#, včetně typů a polí. Je integrován s Visual Studiem, a ukazuje tak chyby z překladu a verifikace uživateli přímo v prostředí.
Viper is a verification infrastructure developed at ETH Zurich. Using this infrastructure, programs written in the Viper language may be analyzed for correctness with respect to assertions and contracts. In this thesis, we develop a contracts library and a translator program that compiles C# code into the Viper language and thus allows it to be verified. A user may annotate their C# program with these contracts and then use the translator to determine its functional correctness. The translator supports most C# features, including types and arrays. It also integrates with Visual Studio, showing translation and verification errors to the user on-the-fly.