answersLogoWhite

0


Best Answer

Program verification typically uses static analysis software to analyse program source code. Much of this is done by the compiler itself, however the compiler's primary job is to ensure the code will compile, not that it is logically correct, or efficient, or that it will actually solve the problem.

For instance, the following is perfectly acceptable as far as the compiler is concerned:

if (true) {

}

else if (true) {

// unreachable

}

else {

}

However, program verification will fail because the else if (true) clause is unreachable.

Similarly, it can happen that the then clause is exactly the same as the else clause:

int x;

if (true)

{

x = 42;

}

else

{

x = 42;

}

Problems such as these can be extremely subtle. The compiler will issue no warnings and the program will appear to work exactly as intended, but they are problems nonetheless. In these cases, program efficiency will be affected. They both produce programs that will be slightly larger than they need to be, but the second introduces an unnecessary decision along with duplicate code, thus affecting performance.

Throwing exceptions from a destructor is another problem.

struct foo

{

int m_data;

~foo() { if (!m_data) throw; }

};

In fact, it is illegal. Destructors must never throw exceptions. Yet the compiler allows it. If an exception could occur during destruction then it must be placed within a try...catch block and handled accordingly. Nothing should ever prevent an object from destroying itself.

PVS-Studio (see sources and related links below) is a good example of program verification software and is used primarily to validate open-source software. The website lists a number of problems that have been detected by the software, along with some examples of these problems.

User Avatar

Wiki User

10y ago
This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: What is program verification in c plus plus?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Continue Learning about Engineering
Related questions

Can you program games with c plus plus?

Yes, you can program games with C++.


How to restart c plus plus program?

Exit the program and relaunch it.


Lint is a compiler b a interactive debugger c a cinterpreter d a tool for analysing c plus plus program?

d a tool for analysing c plus plus program


How do you write a C plus plus program that will display the first 10 positive prime numbers?

By learning how to program on C+.


Where did C plus plus program come from?

C++ is an extension of C, and was invented by Bjarne Stroustrup.


What is the only function all C plus plus programs must contain?

Every C plus plus program that is a main program must have the function 'main'.


Can you rewrite a cuda file in c c plus plus language?

Yes, you can rewrite a cuda program originally written in c in c plus plus.


What is a C plus plus game project program?

A C++ game project program could either be a game written in C++ or a C++ library that helps you develop a game.


What are the Example Output of Calculator Program in C plus plus?

example output of c++ calculator


How does algorithm and c plus plus program get along?

They are bosom-friends.


Is there any benefit to a C plus plus program of round robin?

No.


C plus plus program to print number patterns?

bghjg