Computer Science, asked by tanavjeetsingh6388, 5 months ago

6. Which type of software converts and executes the source code of a high-
level -language program line by line?​

Answers

Answered by ayushbag03
3

Testwell CTC++ is a powerful instrumentation-based code coverage and dynamic analysis tool for C and C++ code. With certain add-on components CTC++ can be used also on C#, Java and Objective-C code. Further, again with certain add-on components, CTC++ can be used to analyse code basically at any embedded target machines, also in very small ones (limited memory, no operating system,...).

CTC++ provides Line Coverage, Statement Coverage, Function Coverage, Decision Coverage, Multicondition Coverage, Modified Condition/Decision Coverage (MC/DC), Condition Coverage.

As a dynamic analysis tool, CTC++ shows the execution counters (how many times executed) in the code, i.e. more than a plain executed/not executed information. You can also use CTC++ to measure function execution costs (normally time) and to enable function entry/exit tracing at test time.

CTC++ is easy to use. When used in command-line mode (by makefiles or other build scripts), the instrumentation is just a front end phase at the compile/link command. No changes to the source files or build scripts are needed. Test runs are done with the instrumented program version, in the same way as with the original program. Coverage and other execution profiling reports can be obtained easily in straight text, HTML, XML, JSON (JavaScript Object Notation) and Excel input form. On some environments, e.g. Microsoft Visual Studio, CTC++ use  is possible directly from the compiler IDE.

CTC++'s overhead on the size and execution speed of the instrumented code is very reasonable. CTC++'s reporting is informative and well-organised. The reports give both a top-level view, which show the coverage percentages at various summary levels, and a detailed view, where the executed/not executed information is mapped to the actual source code locations.

CTC++ is delivered and licensed per host. The host here means the machine architecture and operating system where the ready-made CTC++ tool components can be run, for example Windows or Linux. See CTC++ availability.

The basic CTC++ delivery package, "CTC++ host-only", facilitates CTC++ use at the host, i.e. instrumenting the code to be measured at the host (e.g. Windows), where a compiler is used which is supported in the delivery package and which generates code on the host (e.g. Microsoft Visual C++, also some other compilers for Windows are supported), where the instrumented programs are run, and where the coverage reports are generated.

A CTC++ delivery package, except certain entry-level license, contains also "CTC++ Host-Target add-on" (HOTA) and "CTC++ Bitcov add-on" (Bitcov) packages. They facilitate instrumenting and cross-compiling the code basically with whatever C/C++ compiler to whatever target machine or execution context, and getting the coverage data back to the host for reporting. CTC++ adaptation packages are available on many commonly used cross-compilers and targets. You can also work up by yourself such adaptation for your specific compiler/target combination.

Logically the HOTA package gives same CTC++ measuring capabilities at the target as in the host. The Bitcov package is meant for limited memory targets. It measures the code coverage only as "executed/not excuted", not "how many times executed". And Bitcov does not support function execution time measuring.

There is still an add-on package for C# and another for Java. From CTC++ point of view C# and Java are seen as special dialects of C++, and with certain arrangements CTC++ instrumentation is connected to the C#/Java compilation phase, similarly as when instrumenting and compiling C/C++ code. The C#/Java run-time context is modeled as a special type of target for which the CTC++ support library has been implemented of the HOTA components, i.e. rewritten in C#/Java. The net result is that CTC++ gives of C#/Java code similar coverage and dynamic analysis information as here described for C/C++ code.

Similar questions