Skip to main content Accessibility help
×
Home
Hostname: page-component-5d6d958fb5-jlrq2 Total loading time: 0.245 Render date: 2022-11-28T18:16:59.525Z Has data issue: true Feature Flags: { "shouldUseShareProductTool": true, "shouldUseHypothesis": true, "isUnsiloEnabled": true, "useRatesEcommerce": false, "displayNetworkTab": true, "displayNetworkMapGraph": false, "useSa": true } hasContentIssue true

Exploiting reachability and cardinality in higher-order flow analysis

Published online by Cambridge University Press:  12 August 2008

MATTHEW MIGHT
Affiliation:
Diagis, LLC, Atlanta, GA, USA (e-mail: matt@diagis.com)
OLIN SHIVERS
Affiliation:
Northeastern University, Boston, MA, USA (e-mail: shivers@ccs.neu.edu)
Rights & Permissions[Opens in a new window]

Abstract

HTML view is not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

We present two complementary improvements for abstract-interpretation-based flow analysis of higher-order languages: (1) abstract garbage collection and (2) abstract counting. Abstract garbage collection is an analog to its concrete counterpart: the analysis determines when an abstract resource has become unreachable, and then, re-allocates it as fresh. This prevents flow sets from joining during abstract interpretation, which has two immediate effects: (1) the precision of the interpretation increases and (2) its running time often falls. In abstract counting, the analysis tracks how many times an abstract resource has been allocated. A count of one implies that the abstract resource momentarily represents only one concrete resource. This knowledge, in turn, drives environment analysis, expanding the kind (rather than just the degree) of optimization available to the compiler.

Type
Articles
Copyright
Copyright © Cambridge University Press 2008

References

Agesen, O. (1995) The cartesian product algorithm: simple and precise type inference of parametric polymorphism. In Proceedings of ECOOP 1995, pp. 2–26.Google Scholar
Chase, D. R., Wegman, M., & Zadeck, F. K. 1990 (June) Analysis of pointers and structures. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 296–310.Google Scholar
Cousot, P. & Cousot, R. 1977 (January) Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proceedings of ACM SIGPLAN Symposium on Principles of Programming Languages, vol. 4, pp. 238–252.Google Scholar
Cousot, P. & Cousot, R. 1979 (January) Systematic design of program analysis frameworks. In Proceedings of ACM SIGPLAN Symposium on Principles of Programming Languages, vol. 6, pp. 269–282.Google Scholar
Hannan, J. (1995) Type systems for closure conversion. In Proceedings of Workshop on Types for Program Analysis, pp. 48–62.Google Scholar
Hudak, P. 1986 (August) A semantic model of reference counting and its abstraction (detailed summary). In Proceedings of the 1986 ACM Conference on LISP and Functional Programming, pp. 351–363.Google Scholar
Jagannathan, S., Thiemann, P., Weeks, S., & Wright, A. K. 1998 (January) Single and loving it: must-alias analysis for higher-order languages. In Proceedings of ACM SIGPLAN Symposium on Principles of Programming Languages, pp. 329–341.Google Scholar
Might, M. & Shivers, O. 2006a (January) Environment analysis via ΔCFA. In Proceedings of the 33rd Annual ACM Symposium on the Principles of Programming Languages (POPL 2006), pp. 127–140.Google Scholar
Might, M. & Shivers, O. 2006b (September) Improving flow analyses via ΓCFA: abstract garbage collection and counting. In Proceedings of the 11th ACM International Conference on Functional Programming (ICFP 2006), pp. 13–25.Google Scholar
Might, M. & Shivers, O. (2007) Analyzing environment structure of higher-order languages using frame strings. Theoretical Computer Science, 375 (1–3), 137168.CrossRefGoogle Scholar
Might, M., Chambers, B., & Shivers, O. 2007 (January) Model checking via ΓCFA. In Proceedings of the 8th International Conference on Verification, Model Checking and Abstract Interpretation (VMCAI 2007), pp. 59–73.Google Scholar
Palsberg, J. (1995) Closure analysis in constraint form. ACM Trans. Programming Languages Systems, 17 (1), 4762.CrossRefGoogle Scholar
Sestoft, P. 1988 (October) Replacing Function Parameters by Global Variables. M.Phil. thesis, Copenhagen, Denmark: DIKU, University of Copenhagen.Google Scholar
Shivers, O. 1988 (June) Control-flow analysis in scheme. In Proceedings of the SIGPLAN '88 Conference on Programming Language Design and Implementation (pldi), pp. 164–174.Google Scholar
Shivers, O. 1991 (May) Control-Flow Analysis of Higher-Order Languages. Ph.D. thesis, Pittsburgh, PA: School of Computer Science, Carnegie-Mellon University. Technical Report CMU-CS-91-145.Google Scholar
Shivers, O. & Might, M. 2006 (June) Continuations and transducer composition. Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, 295–307.Google Scholar
Steele, Jr., & Guy, L. 1978 (May) RABBIT: A Compiler for SCHEME. M.Phil. thesis, Cambridge, MA: Artificial Intelligence Laboratory, Massachusetts Institute of Technology. Technical report AI-TR-474.Google Scholar
Wand, M. & Steckler, P. 1994 (January) Selective and lightweight closure conversion. Proceedings of ACM SIGPLAN Symposium on Principles of Programming Languages, vol. 21, pp. 435–445.Google Scholar
Wright, A. K. & Jagannathan, S. (1998) Polymorphic splitting: an effective polyvariant flow analysis. ACM Trans. Programming Languages Systems, 20 (1), 166207.CrossRefGoogle Scholar
Submit a response

Discussions

No Discussions have been published for this article.
You have Access
7
Cited by

Save article to Kindle

To save this article to your Kindle, first ensure coreplatform@cambridge.org is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about saving to your Kindle.

Note you can select to save to either the @free.kindle.com or @kindle.com variations. ‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi. ‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

Find out more about the Kindle Personal Document Service.

Exploiting reachability and cardinality in higher-order flow analysis
Available formats
×

Save article to Dropbox

To save this article to your Dropbox account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you used this feature, you will be asked to authorise Cambridge Core to connect with your Dropbox account. Find out more about saving content to Dropbox.

Exploiting reachability and cardinality in higher-order flow analysis
Available formats
×

Save article to Google Drive

To save this article to your Google Drive account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you used this feature, you will be asked to authorise Cambridge Core to connect with your Google Drive account. Find out more about saving content to Google Drive.

Exploiting reachability and cardinality in higher-order flow analysis
Available formats
×
×

Reply to: Submit a response

Please enter your response.

Your details

Please enter a valid email address.

Conflicting interests

Do you have any conflicting interests? *