Skip to content

WPDS Solver#839

Open
fabianbs96 wants to merge 6 commits into
developmentfrom
f-WPDSSolver
Open

WPDS Solver#839
fabianbs96 wants to merge 6 commits into
developmentfrom
f-WPDSSolver

Conversation

@fabianbs96
Copy link
Copy Markdown
Member

This PR adds a first version of a Weighted Pushdown Systems solver to phasar. It implements the post* algorithm, freely adapted from Algorithm 3 in "Weighted pushdown systems and their application to interprocedural dataflow analysis" by Reps et al. (link).

The new WPDSSolver can solve WPDS that are provided via a wpds::RuleProvider. Existing IFDS/IDE problems can be transformed to a RuleProvider by using one of the the wrapper-types IFDSRuleProvider or IDERuleProvider.

Note that the solver does not eagerly compute the final edge-values (as IDE would do) as per Algorithm 4 in the paper. Instead we use an on-demand value computation. This fits better to the current data-layout of the P-Automaton (wpds::SolverResults / wpds::OwningSolverResults). Let's see, how well it works.

The whole WPDS infastructure should be treated as experimental for now.

@fabianbs96 fabianbs96 self-assigned this May 21, 2026
@fabianbs96 fabianbs96 added the enhancement New feature or request label May 21, 2026
@fabianbs96 fabianbs96 marked this pull request as ready for review May 21, 2026 17:54
@fabianbs96 fabianbs96 requested a review from MMory as a code owner May 21, 2026 17:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant