--%>

Explain VeriSoft

VeriSoft (Godefroid, 2005) is a model checker for C and C++; other languages can be used, but components in other languages are treated as black boxes. VeriSoft has been used to find defects in very large telecommunications programs (Chandra, Godefroid, and Palm 2002). It is available for download at the VeriSoft website. This package includes a version of VeriSoft for analyzing multiprocess C or C++ programs whose processes communicate via a predefined set of types of communication objects. It is a “stateless” model checker, in that visited states are not saved. It uses clever partial-order reduction search algorithms utilizing program analysis to avoid revisiting states, and guarantees complete coverage of the state space to some depth, while preserving correctness properties. Verisoft can search for four basic types of errors:

  • Deadlocks.
  • Divergences. A divergence occurs when a process does not attempt to communicate with the rest of the system for more than a given (user-specified) amount of time.
  • Livelocks. A livelock occurs when a process is blocked during a sequence of more than a given (user-specified) number of successive states in the state space.
  • Violations of state assertions, the assertions having been stated using a special operation VS_assert(boolean_expr).

To represent non-determinism in the model or environment, VeriSoft provides a special operation VS_toss to express non-deterministic choice, which is like Verify.random in Java PathFinder.

   Related Questions in Programming Languages

  • Q : Explain Upcast Upcast: It is a cast

    Upcast: It is a cast towards an object's ultimate super type - which is, `up' the inheritance hierarchy towards the Object class, for example:         // Upcast from VariableContr

  • Q : Explain VeriSoft VeriSoft (Godefroid,

    VeriSoft (Godefroid, 2005) is a model checker for C and C++; other languages can be used, but components in other languages are treated as black boxes. VeriSoft has been used to find defects in very large telecommunications programs (Chandra, Godefroi

  • Q : Explain Primitive Type Abstractions

    Primitive Type Abstractions: An effective way to reduce the state space of a program is to replace the primitive types with the corresponding abstractions that encapsulate all the possible operations that are performed on these types.

    Q : Define Property Specifications Property

    Property Specifications: Users can specify assertions using the assert(expr) statements. An assert statement is used to check if the property specified by the expression expr is valid within a state. If expr evaluates to 0, this implies that it is not

  • Q : Problem on COBOL source code errors

    There are many errors in the following COBOL source code. Identify the errors and rewrite the program so that it contains no errors:IDENTIFICATION DIVISION   (Full stop required)PROGRAM ID. ERRORS-EXAMPLE.DATA DIVISION    (Fu

  • Q : New features in Microsoft AJAX library

    List the new features that are included in Microsoft AJAX library?

  • Q : What is sticky bit Explain the sticky

    Explain the sticky bit?

  • Q : Explain functionality or an API needs

    The application I am creating needs having access to functionality or an API that use needs the Nokia Vendor ID. For my application how can I have this Nokia VID?

  • Q : What is Concurrency Concurrency : This

    Concurrency: This is a feature of parallel programming. The parts of a program whose executions overlap in time are stated to execute concurrently. Java's thread characteristic support concurrency.

  • Q : What is Octal character constant Octal

    Octal character constant: It is a character constant in the form of \ddd, where each d is an octal digit. This might be employed for characters with a Unicode value in the range of 0 to 255.