Polyspace Client™ for Ada proves the absence of overflow, divide-by-zero, out-of-bounds array access, and certain other run-time errors in Ada83 and Ada95 source code. It produces results without requiring program execution, code instrumentation, or test cases. Polyspace Client for Ada uses abstract interpretation techniques based on formal methods to verify code. Analysis results are shown within the source code. Each code statement is color-coded to indicate whether it is free of run-time errors, proven to fail, unreachable, or unproven. Polyspace Client for Ada displays range information for variables and function return values and can prove which variables exceed specified range limits.
You can use Polyspace Client for Ada on your desktop to run and review code analyses before compilation and test.
Prove the Absence of Critical Run-Time Errors
Check Ada83 or Ada95 code operations for run-time correctness. Identify statements that will never experience a run-time error, regardless of the run-time conditions. Analyze run-time vulnerabilities with the support of event traces, variable value ranges, and call trees related to the finding. Polyspace Client for Ada uses formal methods to detect errors that elude other means of testing. Analyze all code paths against all possible inputs without code execution.
Interactive Analysis on Desktop
Organize and configure your projects, and run static code analysis on subset of software projects to qualify code change before submitting code to source code repository. Use Polyspace Client for Ada to generate reports, and review and triage results. Find the root cause of complex bugs with debugger-like views to navigate step-by-step through each statement leading to a run-time error.
Improve Software Design and Code Understanding
Examine control and data flow through software and see range information associated with variables and operators.
Optimize Software for Performance
Remove defensive code by identifying safe and secure operations such as division by zero. Detect code branches that cannot be reached via any execution path and errors in logic and program structure and remove them for smaller memory footprint.
Analyze Global Variable Usage
Reduce time spent on debugging read/write operations on global variables, including variables shared by tasks or threads. Understand control and data flow leading to a data race with the concurrent access graph. Identify unused global variables for code optimization.
Static Application Security Testing
Prove that the application is free of critical security vulnerabilities by exhaustively stressing potential vulnerable Ada statements such as memory access, buffer overflows, or numerical overflows. Support of 20 CWE weakness rules. Leverage analysis results from Polyspace Client for Ada to complement or replace fuzz testing and focus instead on vulnerable identified operations.
Improve and Complement Robustness and Functional Testing
Use Polyspace Client for Ada to improve robustness testing by focusing tests on statements proven unsafe such as division by zero or overflows. Use results from Polyspace Client for Ada to create and maintain boundary and partition tests, leveraging control and data flow analysis, and computed range of function parameters and global variables.