Preparing Set-Based Analysis for Run-time Specialization

실행시간 전문화를 위한 집합기반 분석의 준비

  • 어현준 (한국과학기술원 전산학과) ;
  • 이광근 (한국과학기술원 전산학과)
  • Published : 2000.09.01

Abstract

정적 분석을 사용하여 프로그램의 입력에 의존하는 성질을 예측하는 방법을 제안한다. 제안된 방법은 입력에 무관한 성질을 예측하도록 설계된 정적 분석을 입력에 의존하는 성질을 예측하는 분석으로 변환한다. 이 방법은 실행 중에 프로그램의 성질을 알아내기 위해서 실행중인 프로그램을 관찰하는 코드가 필요 없고 계측된 자료를 모으는 과정도 필요 없다. 정적 분석의 가장 마지막 부분을 프로그램의 실행 시간으로 미루는 것이 이 논문의 핵심 아이디어다. 먼저 정적 분석을 분석하여, 프로그램의 입력에 민감하여 프로그램의 실행시간으로 연기되어야 하는 부분을 찾아낸다. 그 후, 값을 자른 분석을 사용하여 이 부분을 재구성하여 프로그램의 입력에 대한 간단한 멤버쉽 테스트에 의해 분석이 풀어질 수 있도록 한다. 이런 재구성 과정을 통해 준비된 분석들은 프로그램의 입력이 나타나기만 하면 순간적으로, 동시에 풀려질 수 있다. 모든 과정은 엄밀하게 정의되고 증명되었다.

Keywords

References

  1. Thomas Ball and James R. Lams. Optimally profiling and tracing program. ACM Transactions on Programming Languages and Systems, 16(4):1319-1360, July 1994 https://doi.org/10.1145/183432.183527
  2. Thomas Ball, Peter Mataga, and Mooly Sagiv. Edge profiling versus path profiling: the showdown. In Proceedings of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 1998 https://doi.org/10.1145/268946.268958
  3. Robin Milner, Mads Tofte, Robert Harper, and David MacQueen. The Definition of Standard ML (Revised). MIT Press, 1997
  4. Martin S. Feather. A survery and classification of some program transformation approaches and techniques. In L.G.L.T. Meertens, editor, Program Specification and Transformation, pages 165-195. Elsevier Science Publishers, 1987
  5. Cormac Flanagan and Matthias Felleisen. Componential set-based analysis. In Proceedings of the SIGPLAN conference on Programming Language Design and Implementation, 1997 https://doi.org/10.1145/258915.258937
  6. Nevin Heintze. Set Based Program Analysis. PhD thesis, Carnegie Mellon University, October 1992
  7. Nevin Heintze. Set based analysis of ML Programs. Technical Report CMU-CS-93-193, Carnegie Mellon University, July 1993
  8. Nevin Heintze and David McAllesterLinear-time subtransitive control flow analysis. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation, pages 261-272, June 1997 https://doi.org/10.1145/258915.258939
  9. Alex Aiken and Nevin Heintze. Constraint-based program analysis. Tutorial Notes of the ACM Symposium on Principles of Programming Languages, January 1995
  10. Frank Tip. A survey of program slicing techniques. Technical Report CS-R9438, Centrum voor Wiskunde en Informatica, 1994
  11. Witold Charatonik and Andreas Podelski. Co-definite set constraints. In Lecture Notes in Computer Science, volume 1379, pages 211-225. Springer-Verlag, Proceedings of the 9th International Conference on Rewriting Techniques and Applications - RTA'98 edition, 1998 https://doi.org/10.1007/BFb0052372
  12. Hubert Comon, Max Dauchet, Remi Gilleron, Florent Jacquemard, Denis Lugiez, Sophie Tison, and Marc Tommasi. Tree automata techniques and applications, April 1999
  13. Patrik Cousot and Radhia Causat. Compositional and indective semantic definitions in fixpoint, equational, constraint, closure-condition, rule-based and game-theoretic form. In Lecture Notes in Computer Science, volume 939, pages 293-308. Springer-Veriag, proceedings of the 7th international conference on computer'-aided verification edition, 1995 https://doi.org/10.1007/3-540-60045-0_58
  14. Steven McCanne and Van Jacobson. The BSD packet filter: A new architecture for user-level packet capture. In Proceedings of the Winter 1993 USENIX Conference, pages 259-269. USENIX Association, January 1993
  15. Shamik Sharma, Anurag Acharya, and Joel Saltz. Deferred data-flow analysis. Technical Report TRCS98-38, University of California, Santa Barbara, December 1998
  16. Sungdo Moon, Mary W. Hall, and Brian R. Murphy. Predicated array data-flow analysis for run-time parallelization. In Proceedings of the ACM International Conference on Supercomputing, July 1998 https://doi.org/10.1145/277830.277874
  17. Glenn Ammons and James Larus. Improving data-flow analysis with path profiles. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation, June 1998 https://doi.org/10.1145/277650.277665
  18. Charles Consel and Francois Noel. A general approach for run-time specialization and its application to C. In Proceedings of The ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 1996 https://doi.org/10.1145/237721.237767
  19. Mark Leone and Peter Lee. Optimizing ML with run-time speicialzation. Technical Heport CMU-CS-95-205, Carnegie Mellon University, December 1995
  20. Jeol Auslander, matthai philipose, Craig Chambers, Susan J. Eggers, and Brian N. Bershad. Fast, effective dynamic compilation. In Proceedings of SIGPLAN conference on Programming Language Design Implementation, June 1998 https://doi.org/10.1145/231379.231409
  21. Brian Grant, Markus Mock, Matthai Philipose, Craig Chambers, and Susan J. Eggers. Annotation-directed run-time specialization in C. In Proceedings of The ACM Symposium on Partial Evaluation and Program Manipulations https://doi.org/10.1145/258993.259016
  22. Charles Consel and Olivier Danvy. Tutorial notes on partial evaluation. In the Twentieth ACM Symposium on Principles of Programming Languages, January 1993 https://doi.org/10.1145/158511.158707
  23. You-Chin Fuh and Pratect Mishra. Type inference with subtypes. Theoretical Computer Science, 73:155-175, 1990 https://doi.org/10.1016/0304-3975(90)90144-7
  24. Tim Freeman and Frank Pfenning. Refinement types for ML. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation, pages 268-277, 1991 https://doi.org/10.1145/113445.113468
  25. Mario Coppo, Ferruccio Damiani, and Paola Giannini. Refinement types for program analysis. In Lecture Notes in Computer Science, volume 1145. Springer-Verlag, 1996 https://doi.org/10.1007/3-540-61739-6_39
  26. Thomas Reps and Todd Turnidge. Program specialization via program slicing. In Lecture Notes in Computer Science, volume 1110, pages 409-429. Springer-Verlag, 1996 https://doi.org/10.1007/3-540-61580-6_20
  27. Yanhong A. Liu. Dependence analysis for recursive data. In Proceedings of the IEEE International Conference on Computer Language, pages 206-215, May 1998
  28. Francois Bourdoncle. Abstract debugging of higher-order imperative Languages. In Proceedings of the SIGPLAN conference on Programming Language Design and Implementation, 1993 https://doi.org/10.1145/155090.155095
  29. Sandip K. Biswas. A demand-driven set-based analysis. In Proceedings of The ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 372-385, 1997 https://doi.org/10.1145/263699.263753