Abstract
We present a new algorithm which computes a partial approximate solution for a system of equations. It is local in that it considers as few variables as necessary in order to compute the values of those variables we are interested in, it is generic in that it makes no assumptions on the application domain, and it is general in that the algorithm does not depend on any specific properties of right-hand sides of equations. For instance, monotonicity is not required. However, in case the right-hand sides satisfy some weak monotonicity property, our algorithm returns the (uniquely defined) least solution.
The algorithm meets the best known theoretical worstcase complexity of similar algorithms. For the application of analyzing logic languages, it also gives the best practical results on most of our real world benchmark programs.
Preview
Unable to display preview. Download preview PDF.
References
F. Bourdoncle. Abstract Interpretation by Dynamic Partitioning. Journal of Functional Programming, 2(4), 1992.
B. Le Charlier and P. Van Hentenryck. A Universal Top-Down Fixpoint Algorithm. Technical report 92-22, Institute of Computer Science, University of Namur, Belgium, 1992.
B. Le Charlier and P. Van Hentenryck. Experimental evaluation of a generic abstract interpretation algorithm for Prolog. TOPLAS, 16(1):35–101, 1994.
R. Cleaveland and B. Steffen. A Linear-Time Model Checking Algorithm for the Alternation-Free Modal Mu-Calculus. In CAV'91. Springer, LNCS 575, 1991.
A. Cortesi, G. Filé, and W. Winsborough. Prop revisited: Propositional formulas as abstract domain for groundness analysis. In LICS'91, 322–327, Amsterdam, The Netherlands, 1991.
P. Cousot and R. Cousot. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In POPL'77, 238–252, 1977.
P. Cousot and R. Cousot. Abstract Interpretation and Application to Logic Programs. Journal of Logic Programming, 13(2):103–179, 1992.
A. Dicky. An Algebraic and Algorithmic Method of Analysing Transition Systems. TCS, 46:285–303, 1986.
Christian Fecht. GENA — a Tool for Generating Prolog Analyzers from Specifications. SAS'95, 418–419. Springer Verlang, LNCS 983, 1995.
M.S. Hecht. Flow Analysis of Computer Programs. Amsterdam: Elsevier North-Holland, 1977.
S. Horwitz, A. Demers and T. Teitelbaum. An Efficient General Iteration Algorithm for Dataflow Analysis. Acta Informatica, 24, 679–694, 1987.
N. JØrgensen. Finding Fixpoints in Finite Function Spaces Using Neededness Analysis and Chaotic Iteration. In SAS'94, 329–345. Springer, LNCS 864, 1994.
G.A. Kildall. A Unified Approach to Global Program Optimization. In POPL'73, 194–206, 1973.
K. Marriott, H. SØndergaard, and N.D. Jones. Denotational Abstract Interpretation of Logic Programs. ACM Transactions of Programming Languages and Systems, 16(3):607–648, 1994.
M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis. In S.S. Muchnick and N.D. Jones, editors, Program Flow Analysis: Theory and Application, 189–233. Prentice-Hall, 1981.
P. Van Hentenryck, A. Cortesi, and B. Le Charlier. Evaluation of the domain Prop. The Journal of Logic Programming, 23(3):237–278, 1995.
B. Vergauwen, J. Wauman, and J. Lewi. Efficient fixpoint computation. In SAS'94, 314–328. Springer, LNCS 864, 1994.
R. Wilhelm and D. Maurer. Compiler Construction. Addison-Wesley, 1995.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Fecht, C., Seidl, H. (1996). An even faster solver for general systems of equations. In: Cousot, R., Schmidt, D.A. (eds) Static Analysis. SAS 1996. Lecture Notes in Computer Science, vol 1145. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61739-6_42
Download citation
DOI: https://doi.org/10.1007/3-540-61739-6_42
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61739-6
Online ISBN: 978-3-540-70674-8
eBook Packages: Springer Book Archive