A Differential Fixpoint Evaluation Algorithm for Arbitrary Worklist Scheduling

할 일들의 순서 선택이 자유로운 증가분 기반 고정점 계산 알고리즘

  • 안준선 (한국항공대학교 항공전자 및 정보통신공학부)
  • Published : 2005.08.01

Abstract

We devise a differential fixpoint computation method and develop a new worklist algorithm based on it. Compared with other differential methods, our method can deal with non-distributive systems and adopt any worklist scheduling policy satisfying restrictions imposed by differential evaluation. As a practical application, we present an interpretation framework and implement constant and alias analysis and memory lifetime analysis based on it. Our experiment shows that our method can save computation and worklist scheduling is also important in differential fixpoint evaluations.

본 연구에서는 증가분 기반 계산을 사용한 고정점 계산 방법을 제시하고 이에 기반한 새로운 워크리스트 알고리즘을 제시한다. 제시된 방법은 기존의 증가분 기반 계산과 달리 배분 법칙을 만족하지 않는 계산 시스템에도 효과적으로 적용될 수 있으며 증가분 기반 계산으로 인한 제약 조건을 만족하면서도 다양한 워크리스트 스케줄링 방법을 사용할 수 있는 장점을 가지고 있다. 본 연구의 결과를 프로그램 정적 분석 방법인 요약 해석 방법에 적용하였으며, 이를 사용하여 상수 및 이명 분석과 메모리 생존 분석을 구현하였다. 제시된 실험 결과는 본 연구의 방법이 계산을 실제적으로 절약할 수 있음과, 적절한 워크리스트 스케줄링 방법의 사용이 증가분 기반 계산에서도 중요함을 보여준다.

Keywords

References

  1. Kwangkeun Yi, 'Yet another ensemble of abstract interpreter, higher-order data-flow equations, and model checking,' Technical Memorandum ROPAS-2001-10, Research On Program Analysis System, KAIST, March 2001
  2. Neil Jones and Alan Mycroft, 'Data flow analysis of applicative programs using minimal function graphs,' In 13th ACM Symposium on Principles of Programming Languages, pp.296-306, 1986 https://doi.org/10.1145/512644.512672
  3. Li-ling Chen, Luddy Harrison and Kwangkeun Yi, 'Efficient computation of fixpoints that arise in complex program analysis,' Journal of Programming Languages, Vol.3, No.1, pp.31-68, 1995
  4. A. C. Fong and J. D. Ullman, 'Induction variables in very high-level languages,' In 6th ACM Symposium on Principles of Programming Languages, pp.104-112, 1976
  5. Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman, Compilers, principles, techniques, and tools, Addison Wesley, 1988
  6. Robert Paige and Shaye Koenig, 'Finite differencing of computable expressions,' ACM Trans. on Programming Languages and Systems, Vol.4, No.3, pp.402-454, 1982 https://doi.org/10.1145/357172.357177
  7. Yanhong A. Liu, 'Efficiency by incrementalization : an introduction,' Higher-Order and Symbolic Computation, Vol.13, No.4, pp.289-313, 2000 https://doi.org/10.1023/A:1026547031739
  8. Francois Bancilhon and Raghu Ramakrishnan, 'An amateur's introduction to recursive query processing strategies,' In ACM SIGMOD Conference on Management of Data, pp.16-52, 1986 https://doi.org/10.1145/16894.16859
  9. Christian Fecht and Helmut Seidl, 'Propagating differences: an efficient new fixpoint algorithm for distributive constraint systems,' In Proceedings of European Symposium on Programming (ESOP), pp.90-104. LNCS 1381, Springer Verlag, 1998 https://doi.org/10.1007/BFb0053558
  10. Christian Fecht and Helmut Seidl, 'A faster solver for general systems of equations,' Science of Computer Programming, Vol.35, No.2, pp.137-161, 1999 https://doi.org/10.1016/S0167-6423(99)00009-X
  11. Joonseon Ahn, 'A Differential Evaluation of Fixpoint Iterations,' The Second Asian Workshop on Programming Languages and Systems, Taejon, Korea, Dec., 2001
  12. Patrick Cousot and Radhia Cousot, 'Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints.' In Proceedings of the 4th ACM Symposium on Principles of Programming Languages, pp. 238-252, Los Angeles, California, January, 1977 https://doi.org/10.1145/512950.512973
  13. Samson Abramsky and Chris Hankin, editors, Abstract Interpretation of Declarative Languages : Computers and Their Applications, Ellis Horwood, 1987
  14. Kwangkeun Yi, Automatic Generation and Management of Program Analyses, Ph.D. Thesis, University of Illinois at Urbana-Champaign, 1993
  15. Williams Ludwell Harrison III and Zahira Ammarguellat, 'A program's eye view of MIPRAC,' In D. Gelernter, A. Nicolau and D. Padua, editors, Languages and Compilers for Parallel Computing, MIT Press, August 1992