Thesis (Selection of subject)Thesis (Selection of subject)(version: 368)
Thesis details
   Login via CAS
String Analysis for Code Contracts
Thesis title in Czech: Analýza řetězců v Code Contracts
Thesis title in English: String Analysis for Code Contracts
Key words: řetězce, statická analýza, abstraktní interpretace, Code Contracts
English key words: strings, static analysis, abstract interpretation, Code Contracts
Academic year of topic announcement: 2014/2015
Thesis type: diploma thesis
Thesis language: angličtina
Department: Department of Distributed and Dependable Systems (32-KDSS)
Supervisor: doc. RNDr. Pavel Parízek, Ph.D.
Author: hidden - assigned and confirmed by the Study Dept.
Date of registration: 16.02.2015
Date of assignment: 16.02.2015
Confirmed by Study dept. on: 19.02.2015
Date and time of defence: 05.09.2016 11:00
Date of electronic submission:28.07.2016
Date of submission of printed version:28.07.2016
Date of proceeded defence: 05.09.2016
Opponents: doc. RNDr. Jan Kofroň, Ph.D.
 
 
 
Guidelines
Code Contracts is a framework that enables modular verification of .NET programs.
Developers can annotate methods with preconditions, postconditions, and object invariants, and then use a runtime checker or a static checker to verify them.
Many interesting properties can be specified and verified using Code Contracts, but the support for strings is currently limited.

The goal of this work is to extend the Code Contracts framework to allow for checking properties over strings.
First, the candidate has to select relevant and useful string-related properties (e.g., containment) and propose a way for specifying the properties inside Code Contracts.
The second major step is the design and implementation of a suitable abstract domain for string expressions, and integration with the existing static checker.
Remaining tasks include experimental evaluation, and demonstration of practical usefulness on several example programs.
References
1. P. Ferrara, F. Logozzo, M. Fahndrich. Safer Unsafe Code for .NET. OOPSLA 2008, ACM.
2. Source code for the Code Contracts tools for .NET. https://github.com/Microsoft/CodeContracts
3. A.S. Christensen, A. Moeller, and M.I. Schwartzbach. Precise Analysis of String Expressions. SAS 2003, LNCS, vol. 2694.
4. A. Kiezun, V. Ganesh, S. Artzi, P.J. Guo, P. Hooimeijer, and M.D. Ernst. HAMPI: A Solver for Word Equations over Strings, Regular Expressions, and Context-Free Grammars. ACM Transactions on Software Engineering and Methodology, 21(4), 2012.
5. G. Costantini, P. Ferrara, and A. Cortesi. A Suite of Abstract Domains for Static Analysis of String Values. Software: Practice and Experience, 45(2), 2015.
 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html