DOC PREVIEW
UT CS 378 - Project Proposal on C Verification

This preview shows page 1 out of 2 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 2 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 2 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Project Proposal on C VerificationNeelima Premsankar, UT EID: np4438C remains a language of choice, for developing embedded software – mainly because of the programmer's control over all the resources required for program execution such as memory layout and allocation. Although this increases efficiency, it comes with the drawbacks of run-time errors due to buffer overflows and dangling pointers. Since the C type system is unsafe, such errors are difficult to detect in programs. This project seeks to analyze the different methods and tools currently adopted for the verification of software systems written in C. Some of the methods that will be discussed include static analysis, specification languages for C (similar to JML for Java) and a verification tool that uses this specification language, “separation logic” as opposed to conventional Hoare logic, etc.The first task is to arrive at a taxonomy for the different techniques, methods and tools – for instance, the tools that annotate the C language with specification constructs, those that use model checking, static analysis vs. run-time checks, etc. Also, static analysis tools are fully automated whereas tools like Caduceus use interactive proof assistants. How theoretic methods like verification using “automated reasoning” and “separation logic” are effective for C language will be tackled. “Separation logic” has been defined as an extension of Hoare logic for reasoning about programs that manipulate pointer structures. Separation logic aims at proving fine-grained properties about pointers and memory footprints, such as non overlapping (i.e. separation) between memory regions. Contrary to Hoare logic, separation logic allows local reasoning on the memory footprint of a statement. Such a local reasoning facilitates program proofs.Once the classification has been done, a comparative analysis of the methods and tools will be done. For the tools, I'd run them on different types of C constructs to check their efficacy against specific types of errors (NULL pointer dereferencing, integer/arithmetic overflow, out of bounds memory access, etc.) and analyze the results. The expected results at the end of the first task would be a broad understanding of the varying methods/tools used to verify the C language and a suitable classification for them. Also, a mapping of the tools to the techniques they adopt will be available at the end of the first phase. The results at the end of the last phase would be comparisons between different methods/tools on the basis of the accuracy of their verification, against different types of errors, scalability, computational time and memory required.A brief timeline is as follows:1. Literature Survey October 102. Taxonomy October 173. Installation of Tools & Identification of the C Constructs to be Checked forOctober 314. Running of Tests November 155. Comparative Analysis November 30References:1) Tools for Verification and Validation http://www.springerlink.com/content/rj5glgjp6lvbvt4e/2) Experiments in validating formal semantics for C (Sandrine Blazy, ENSIIE and INRIA Rocquencourt)3) Multi-Prover Verification of C Programs (Jean-Christophe Filliâtre, Claude Marché4) The software model checker B LAST - Applications to software engineering (Dirk Beyer · Thomas A. Henzinger · Ranjit Jhala · Rupak Majumdar)5) C-Language Verification Tool Using Formal Methods “VARVEL” (TOKUOKA Hiroki, MIYAZAKI Yoshiaki, HASHIMOTO


View Full Document

UT CS 378 - Project Proposal on C Verification

Documents in this Course
Epidemics

Epidemics

31 pages

Discourse

Discourse

13 pages

Phishing

Phishing

49 pages

Load more
Download Project Proposal on C Verification
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Project Proposal on C Verification and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Project Proposal on C Verification 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?