Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/349299.349332acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article
Free access

Scalable context-sensitive flow analysis using instantiation constraints

Published: 01 May 2000 Publication History

Abstract

This paper shows that a type graph (obtained via polymorphic type inference) harbors explicit directional flow paths between functions. These flow paths arise from the instantiations of polymorphic types and correspond to call-return sequences in first-order programs. We show that flow information can be computed efficiently while considering only paths with well matched call-return sequences, even in the higher-order case. Furthermore, we present a practical algorithm for inferring type instantiation graphs and provide empirical evidence to the scalability of the presented techniques by applying them in the context of points-to analysis for C programs.

References

[1]
A.V. Aho, R. Sethi, and J. D. Ullman. Compilers Principles, Techniques, and Tools. Addison Wesley, 1988.
[2]
Jong-Deok Choi, Manish Gupta, Mauricio Serrano, Vugranam C. Sreedhar, and Sam Midkiff. Escape analysis for java. In OOPSLA'99 {OOP99}, pages 1-19.
[3]
Ramkrishna Chatterjee, Barbara G. Ryder, and William A. Landi. Relevant context inference. In Conference Record of the 26th Annual A CM SIGPLAN-SIGA CT Symposium on Principles of Programming Languages, January 1999.
[4]
L. Damas and R. Milner. Principle type-schemes for functional programs. In Conference Record of the 9th Annual ACM Symposium on Principles of Programming Languages, pages 207-212, January 1982.
[5]
Jeffrey S. Foster, Manuel Fahndrich, and Alexander Aiken. Polymorphic versus monomorphic points-to analysis. In Proceedings of the 7th International Static Analysis Symposium, Lecture Notes in Computer Science. Springer Verlag, June 2000.
[6]
Manuel Fahndrich, Jakob Rehof, and Manuvir Das. From polymorphic subtyping to CFL reachability: Context-sensitive flow analysis using instantiation constraints. Technical Report MSR- TR-99-84, Microsoft Research, March 2000.
[7]
Fritz Henglein. Type inference with polymorphic recursion. ACM Transactions on Programming Languages and Systems, 15(2):253-289, 1993.
[8]
Nevin Heintze and David McAllester. Lineartime subtransitive control flow analysis. In Proceedings of the 1997 A CM SIGPLAN Conference on Programming Language Design and Implementation, number 32:6 in SIGPLAN notices, pages 261-272, June 1997.
[9]
Suresh Jagannathan and Andrew Wright. Effective flow analysis for avoiding run-time checks. In Proceedings of the 2nd International Static Analysis Symposium, volume 983 of Lecture Notes in Computer Science, pages 207-224. Springer Verlag, September 1995.
[10]
A.J. Kfoury, J. Tiuryn, and P. Urzyczyn. The undecidability of the semi-unification problem. Information and Computation, 102(1):83-101, January 1993.
[11]
A.J. Kfoury, J. Tiuryn, and P. Urzyczyn. An analysis of ML typability. Journal of the A CM, 41(2):368-398, March 1994.
[12]
Donglin Liang and Mary Jean Harrold. Efficient points-to analysis for whole-program analysis. In Proceedings of the 7th European Software Engineering Conference and the 7th A CM SIGSOFT Symposium on the Foundations of Software Engineering, September 1999.
[13]
R. Milner. A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17:348-375, 1978.
[14]
David Melski and Thomas Reps. Interconvertibility of set constraints and context-free language reachability. In Proceedings of the A CM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM-97), volume 32, 12 of ACM SIGPLAN Notices, pages 74-89. ACM Press, June 1997.
[15]
A. Mycroft. Polymorphic type schemes and recursive definitions. In Proceedings of the 6th International Symposium on Programming, pages 217-228, 1984.
[16]
Flemming Nielson and Hanne Riis Nielson. Infinitary control flow analysis: a collecting semantics for closure analysis. In Conference Record of the 24th Annual A CM SIGPLAN-SIGA CT Symposium on Principles of Programming Languages, pages 332-345. ACM Press, January 1997.
[17]
Robert O'Callahan and Daniel Jackson. Lackwit: A program understanding tool based on type inference. In International Conference on Software Engineering, May 1997.
[18]
Proceedings of 14th Annual Conference on Object-Oriented Programming, Systems, Languages, and Applications, volume 34, 10 of A CM SIGPLAN Notices. ACM Press, November 1999.
[19]
Thomas Reps, Susan Horwitz, and Mooly Sagiv. Precise interprocedural datafiow analysis via graph reachability. In Conference record of POPL '95, 22nd A CM SIGPLAN-SIGA CT Symposium on Principles of Programming Languages: papers presented at the Symposium: San Francisco, California, January 22-25, 1995, pages 49-61, 1995.
[20]
Bjarne Steensgaard. Points-to analysis in almost linear time. In Conference Record of the 23rd Annual A CM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 32- 41, January 1996.
[21]
Robert P. Wilson and Monica S. Lain. Efficient context-sensitive pointer analysis for c programs. In Proceedings of the 1995 A CM SIGPLAN Conference on Programming Language Design and Implementation, number 30:6 in SIGPLAN notices, June 1995.
[22]
John Whaley and Martin Rinard. Compositional pointer and escape analysis for java programs. In OOPSLA'99 {OOP99}, pages 187-206.

Cited By

View all
  • (2023)Aliasing Limits on Translating C to Safe RustProceedings of the ACM on Programming Languages10.1145/35860467:OOPSLA1(551-579)Online publication date: 6-Apr-2023
  • (2020)FlowCFL: generalized type-based reachability analysis: graph reduction and equivalence of CFL-based and type-based reachabilityProceedings of the ACM on Programming Languages10.1145/34282464:OOPSLA(1-29)Online publication date: 13-Nov-2020
  • (2020)A Set-Based Context Model for Program AnalysisProgramming Languages and Systems10.1007/978-3-030-64437-6_1(3-24)Online publication date: 24-Nov-2020
  • Show More Cited By

Index Terms

  1. Scalable context-sensitive flow analysis using instantiation constraints

        Recommendations

        Comments

        Information & Contributors

        Information

        Published In

        cover image ACM Conferences
        PLDI '00: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
        August 2000
        358 pages
        ISBN:1581131992
        DOI:10.1145/349299
        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Sponsors

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        Published: 01 May 2000

        Permissions

        Request permissions for this article.

        Check for updates

        Qualifiers

        • Article

        Conference

        PLDI00

        Acceptance Rates

        PLDI '00 Paper Acceptance Rate 30 of 173 submissions, 17%;
        Overall Acceptance Rate 406 of 2,067 submissions, 20%

        Contributors

        Other Metrics

        Bibliometrics & Citations

        Bibliometrics

        Article Metrics

        • Downloads (Last 12 months)102
        • Downloads (Last 6 weeks)22
        Reflects downloads up to 03 Oct 2024

        Other Metrics

        Citations

        Cited By

        View all
        • (2023)Aliasing Limits on Translating C to Safe RustProceedings of the ACM on Programming Languages10.1145/35860467:OOPSLA1(551-579)Online publication date: 6-Apr-2023
        • (2020)FlowCFL: generalized type-based reachability analysis: graph reduction and equivalence of CFL-based and type-based reachabilityProceedings of the ACM on Programming Languages10.1145/34282464:OOPSLA(1-29)Online publication date: 13-Nov-2020
        • (2020)A Set-Based Context Model for Program AnalysisProgramming Languages and Systems10.1007/978-3-030-64437-6_1(3-24)Online publication date: 24-Nov-2020
        • (2019)Higher-order Demand-driven Program AnalysisACM Transactions on Programming Languages and Systems10.1145/331034041:3(1-53)Online publication date: 2-Jul-2019
        • (2019)DCNSProceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3297858.3304065(287-299)Online publication date: 4-Apr-2019
        • (2017)Relative Store Fragments for Singleton AbstractionStatic Analysis10.1007/978-3-319-66706-5_6(106-127)Online publication date: 19-Aug-2017
        • (2016)A practical framework for type inference error explanationACM SIGPLAN Notices10.1145/3022671.298399451:10(781-799)Online publication date: 19-Oct-2016
        • (2016)A practical framework for type inference error explanationProceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications10.1145/2983990.2983994(781-799)Online publication date: 19-Oct-2016
        • (2016)Efficient online cycle detection technique combining with Steensgaard points-to informationSoftware—Practice & Experience10.1002/spe.232946:5(601-623)Online publication date: 1-May-2016
        • (2015)Analyzing protocol implementations for interoperabilityProceedings of the 12th USENIX Conference on Networked Systems Design and Implementation10.5555/2789770.2789804(485-498)Online publication date: 4-May-2015
        • Show More Cited By

        View Options

        View options

        PDF

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        Get Access

        Login options

        Media

        Figures

        Other

        Tables

        Share

        Share

        Share this Publication link

        Share on social media