Nothing Special   »   [go: up one dir, main page]

skip to main content
10.5555/1882094.1882119guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Abstract interpreters for free

Published: 14 September 2010 Publication History

Abstract

In small-step abstract interpretations, the concrete and abstract semantics bear an uncanny resemblance. In this work, we present an analysis-design methodology that both explains and exploits that resemblance. Specifically, we present a two-step method to convert a smallstep concrete semantics into a family of sound, computable abstract interpretations. The first step re-factors the concrete state-space to eliminate recursive structure; this refactoring of the state-space simultaneously determines a store-passing-style transformation on the underlying concrete semantics. The second step uses inference rules to generate an abstract state-space and a Galois connection simultaneously. The Galois connection allows the calculation of the "optimal" abstract interpretation. The two-step process is unambiguous, but nondeterministic: at each step, analysis designers face choices. Some of these choices ultimately influence properties such as flow-, field- and context-sensitivity. Thus, under the method, we can give the emergence of these properties a graphtheoretic characterization. To illustrate the method, we systematically abstract the continuation-passing style lambda calculus to arrive at two distinct families of analyses. The first is the well-known k-CFA family of analyses. The second consists of novel "environment-centric" abstract interpretations, none of which appear in the literature on static analysis of higher-order programs.

References

[1]
A functional correspondence between evaluators and abstract machines. ACM Press, New York (2003)
[2]
Ager, M., Danvy, O., Midtgaard, J.: A functional correspondence between monadic evaluators and abstract machines for languages with computational effects. Theoretical Computer Science 342(1),149-172 (2005)
[3]
Ager, M.S., Danvy, O., Midtgaard, J.: A functional correspondence between callby-need evaluators and lazy abstract machines. Processing Letters 90(5), 223-232 (2004)
[4]
Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Conference Record of the Fourth ACM Symposium on Principles of Programming Languages pp. 238-252. ACM Press, New York (1977)
[5]
Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: POPL 1979: Proceedings of the 6th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pp. 269-282. ACM Press, New York (1979)
[6]
Danvy, O., Millikin, K.: A rational deconstruction of landin's secd machine with the j operator. Logical Methods in Computer Science 4(4) (November 2008)
[7]
Danvy, O., Millikin, K.: Refunctionalization at work. Science of Computer Programming 74(8), 534-549 (2009)
[8]
Midtgaard, J.: Transformation, Analysis, and Interpretation of Higher-Order Procedural Programs. PhD thesis, University of Aarhus (2007)
[9]
Might, M., Manolios, P.: A posteriori soundness for non-deterministic abstract interpretations. In: Jones, N.D., Müller-Olm, M. (eds.) VMCAI 2009. LNCS, vol. 5403, pp. 260-274. Springer, Heidelberg (2009)
[10]
Might, M., Shivers, O.: Improving flow analyses via γcfa: Abstract garbage collection and counting. In: ICFP 2006: Proceedings of the Eleventh ACM SIGPLAN International Conference on Functional Programming, pp. 13-25. ACM, New York (2006)
[11]
Might, M., Shivers, O.: Exploiting reachability and cardinality in higher-order flow analysis. Journal of Functional Programming, Special Double Issue 18(5-6), 821- 864 (2008)
[12]
Nielson, F., Nielson, H.R.: Infinitary control flow analysis: a collecting semantics for closure analysis. In: POPL 1997: Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 332-345. ACM, New York (1997)
[13]
Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis, Corrected ed. Springer, Heidelberg (October 1999)
[14]
Qian, J., Zhao, L., Cai, G., Gu, T.: Automatic construction of complete abstraction by abstract interpretation. In: ICIS 2009: Proceedings of the 2009 Eigth IEEE/ACIS International Conference on Computer and Information Science, Washington, DC, USA, pp. 927-932. IEEE Computer Society, Los Alamitos (2009)
[15]
Reynolds, J.C.: Definitional interpreters for higher-order programming languages. In: ACM 1972: Proceedings of the ACM Annual Conference, pp. 717-740. ACM, New York (1972)
[16]
Schmidt, D.A.: Abstract interpretation of small-step semantics. In: Selected papers from the 5th LOMAPS Workshop on Analysis and Verification of Multiple-Agent Languages, London, UK, pp. 76-99. Springer, Heidelberg (1997)
[17]
Scott, D., Strachey, C.: Towards a formal semantics, pp. 197-220 (1966)
[18]
Shivers, O.: Control flow analysis in Scheme. In: Proceedings of the ACM SIGPLAN 1988 Conference on Programming Language Design and Implementation, vol. 23, pp. 164-174. ACM, New York (July 1988)
[19]
Shivers, O. G.: Control-Flow Analysis of Higher-Order Languages. PhD thesis, Carnegie Mellon University (1991)
[20]
Wand, M., Siveroni, I.: Constraint systems for useless variable elimination. In: POPL 1999: Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 291-302. ACM, New York (1999)

Cited By

View all
  • (2024)A Pure Demand Operational Semantics with Applications to Program AnalysisProceedings of the ACM on Programming Languages10.1145/36498528:OOPSLA1(1154-1180)Online publication date: 29-Apr-2024
  • (2019)Higher-order Demand-driven Program AnalysisACM Transactions on Programming Languages and Systems10.1145/331034041:3(1-53)Online publication date: 2-Jul-2019
  • (2016)Allocation characterizes polyvariance: a unified methodology for polyvariant control-flow analysisACM SIGPLAN Notices10.1145/3022670.295193651:9(407-420)Online publication date: 4-Sep-2016
  • Show More Cited By
  1. Abstract interpreters for free

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image Guide Proceedings
    SAS'10: Proceedings of the 17th international conference on Static analysis
    September 2010
    472 pages
    ISBN:3642157688
    • Editors:
    • Radhia Cousot,
    • Matthieu Martel

    Sponsors

    • École Normale Supérieure
    • University of Perpignan
    • CNRS: Centre National De La Rechercue Scientifique
    • Microsoft Research: Microsoft Research
    • INRIA: Institut Natl de Recherche en Info et en Automatique

    Publisher

    Springer-Verlag

    Berlin, Heidelberg

    Publication History

    Published: 14 September 2010

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 14 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)A Pure Demand Operational Semantics with Applications to Program AnalysisProceedings of the ACM on Programming Languages10.1145/36498528:OOPSLA1(1154-1180)Online publication date: 29-Apr-2024
    • (2019)Higher-order Demand-driven Program AnalysisACM Transactions on Programming Languages and Systems10.1145/331034041:3(1-53)Online publication date: 2-Jul-2019
    • (2016)Allocation characterizes polyvariance: a unified methodology for polyvariant control-flow analysisACM SIGPLAN Notices10.1145/3022670.295193651:9(407-420)Online publication date: 4-Sep-2016
    • (2016)Allocation characterizes polyvariance: a unified methodology for polyvariant control-flow analysisProceedings of the 21st ACM SIGPLAN International Conference on Functional Programming10.1145/2951913.2951936(407-420)Online publication date: 4-Sep-2016
    • (2016)Pushdown control-flow analysis for freeACM SIGPLAN Notices10.1145/2914770.283763151:1(691-704)Online publication date: 11-Jan-2016
    • (2016)Pushdown control-flow analysis for freeProceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages10.1145/2837614.2837631(691-704)Online publication date: 11-Jan-2016
    • (2014)Abstract interpretationProceedings of the Joint Meeting of the Twenty-Third EACSL Annual Conference on Computer Science Logic (CSL) and the Twenty-Ninth Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)10.1145/2603088.2603165(1-10)Online publication date: 14-Jul-2014
    • (2013)Monadic abstract interpretersACM SIGPLAN Notices10.1145/2499370.249197948:6(399-410)Online publication date: 16-Jun-2013
    • (2013)Monadic abstract interpretersProceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/2491956.2491979(399-410)Online publication date: 16-Jun-2013
    • (2013)A Survey of Polyvariance in Abstract InterpretationsRevised Selected Papers of the 14th International Symposium on Trends in Functional Programming - Volume 832210.1007/978-3-642-45340-3_9(134-148)Online publication date: 14-May-2013
    • Show More Cited By

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media