This paper addresses the shortest path problem for weighted interprocedural automata (WIPA), a simple model adapted to the analysis of low-level programs. We propose an efficient and versatile approach relying on Knuth’s generalization of Dijkstra’s algorithm to context-free grammars. Several variants of the problem are considered in the paper, depending on the starting and ending stacks. Moreover, we solve both the single-source and single-target versions. Each problem is translated into a succint context-free grammar, permitting the efficient computation of a solution in \(O(n \log n + m)\) time, where n and m are the number of states and transitions in the underlying WIPA. We provide experimental results on real-size programs showing the scalability of the approach.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

An Efficient and Versatile Approach to Shortest Path Problems in Interprocedural Programs

  • Theo De Castro Pinto,
  • Antoine Rollet,
  • Grégoire Sutre

摘要

This paper addresses the shortest path problem for weighted interprocedural automata (WIPA), a simple model adapted to the analysis of low-level programs. We propose an efficient and versatile approach relying on Knuth’s generalization of Dijkstra’s algorithm to context-free grammars. Several variants of the problem are considered in the paper, depending on the starting and ending stacks. Moreover, we solve both the single-source and single-target versions. Each problem is translated into a succint context-free grammar, permitting the efficient computation of a solution in \(O(n \log n + m)\) time, where n and m are the number of states and transitions in the underlying WIPA. We provide experimental results on real-size programs showing the scalability of the approach.