This paper describes the program-verifier component of a verifying compiler for a core multi-threaded object-oriented language. The verifier takes as input a program written in the source language and generates, via a translation into an intermediate verification language, a set of verification conditions. The verification conditions are first-order logical formulas whose validity implies the correctness of the program. The formulas can be analyzed automatically by a Satisfiability-Modulo-Theory (SMT) solver. The paper defines the source language and intermediate language, the translation from the former into the latter, and the generation of verification conditions from the latter. The paper also builds a methodology for writing and verifying single- and multi-threaded code with object invariants, and encodes the methodology into the intermediate-language program.
Related white papers
Java Jr.: Fully Abstract Trace Semantics for a Core Java Language
This paper introduces an expressive yet semantically clean core Java-like language, Java Jr., and provides it with a formal operational semantics based on traces of observable actions which represent interaction...
Maximizing Productivity Through Requirements Modeling
Rhapsody is the industry's leading UML 2.0 based Model-Driven Development environment for systems and software engineering. As the only product on the market with the advanced capability to extend UML...
.NET Class Libraries From A to Z
This session will explore the extensive Microsoft .NET Framework Class Library. The .NET Framework provides a rich set of interfaces, as well as abstract and concrete (non-abstract) classes. The .NET...
MSDN Webcast: Testing for Better Design (Level 200)
Over the last decade, software architects have promoted a set of patterns, practices and ideas for designing and building proper "Business objects". Unfortunately, the "Business" aspect often gets lost in...
MSDN Webcast: MSDN Events Reloaded: Object-Oriented Programming Fundamentals in .NET (Level 200)
Microsoft Visual Basic .NET brings the full power of Object-Oriented Programming to the Visual Basic syntax one is already familiar with. The attendee of this webcast will learn the fundamentals...
Digital Broadcasting Success at Sony DNSE
Sony DNSE, headquartered in Basingstoke, UK, develops digital TV transmission and reception equipment. One of the key objectives was to achieve clear and unambiguous communication across multiple sites involved with...
MSDN Webcast: ASP.NET AJAX Client Libraries: Overview (Level 200)
This webcast provides a sample application that illustrates how one can take advantage of Object-Oriented (OO) development in client libraries. The webcast also describes how to call Web services and...

