Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1007/978-3-540-79980-1_15guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Abstract Interpretation Plugins for Type Systems

Published: 28 July 2008 Publication History

Abstract

The precision of many type based analyses can be significantly increased given additional information about the programs' execution. For this reason it is not uncommon for such analyses to integrate supporting analyses computing, for instance, nil-pointer or alias information. Such integration is problematic for a number of reasons: 1) it obscures the original intention of the type system especially if multiple additional analyses are added, 2) it makes use of already available analyses difficult, since they have to be rephrased as type systems, and 3) it is non-modular: changing the supporting analyses implies changing the entire type system.
Using ideas from abstract interpretation we present a method for parameterizing type systems over the results of abstract analyses in such a way that one modular correctness proof can be obtained. This is achieved by defining a general format for information transferal and use of the information provided by the abstract analyses. The key gain from this method is a clear separation between the correctness of the analyses and the type system, both in the implementation and correctness proof, which leads to a comparatively easy way of changing the parameterized analysis, and making use of precise, and hence complicated analyses.
In addition, we exemplify the use of the framework by presenting a parameterized type system that uses additional information to improve the precision of exception types in a small imperative language with arrays.

References

[1]
Amtoft, T., Bandhakavi, S., Banerjee, A.: A logic for information flow in object-oriented programs. In: POPL 2006: Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 91-102. ACM Press, New York (2006).
[2]
Barthe, G., Pichardie, D., Rezk, T.: A certified lightweight non-interference java bytecode verifier. In: De Niccola, R. (ed.) European Symposium on Programming. LNCS. Springer, Heidelberg (to appear, 2007).
[3]
Chin, B., Markstrum, S., Millstein, T.: Semantic type qualifiers. SIGPLAN Not. 40(6), 85-95 (2005).
[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 Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Los Angeles, California, pp. 238-252. ACM Press, New York (1977).
[5]
Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: Conference Record of the Sixth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Antonio, Texas, pp. 269-282. ACM Press, New York (1979).
[6]
Crary, K., Weirich, S.: Resource bound certification. In: POPL 2000: Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 184-198. ACM, New York (2000).
[7]
Flanagan, C.: Hybrid type checking. In: POPL 2006: Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 245-256. ACM, New York (2006).
[8]
Foster, J.S., Fähndrich, M., Aiken, A.: A theory of type qualifiers. SIGPLAN Not. 34(5), 192-203 (1999).
[9]
Gedell, T., Hedin, D.: Abstract interpretation plugins for type systems. Technical Report 2008:10, Computing Science Department, Chalmers.
[10]
Gedell, T., Hedin, D.: Plugins for structural weakening and strong updates (unpublished).
[11]
Gulwani, S., Tiwari, A.: Combining abstract interpreters. In: PLDI 2006: Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation, pp. 376-386. ACM Press, New York (2006).
[12]
Hedin, D., Sands, D.: Noninterference in the presence of non-opaque pointers. In: Proceedings of the 19th IEEE Computer Security Foundations Workshop. IEEE Computer Society Press, Los Alamitos (2006).
[13]
Hunt, S., Sands, D.: Just forget it - the semantics and enforcement of information erasure. In: Programming Languages and Systems. 17th European Symposium on Programming, ESOP 2008. LNCS, vol. 4960, pp. 239-253. Springer, Heidelberg (2008).
[14]
Pierce, B.C. (ed.): Types and Programming Languages. MIT Press, Cambridge (2002).
[15]
Sabelfeld, A., Myers, A.C.: Language-based information-flow security. IEEE J. Selected Areas in Communications 21(1), 5-19 (2003).
[16]
Xi, H., Pfenning, F.: Eliminating array bound checking through dependent types. SIGPLAN Not. 33(5), 249-257 (1998).
  1. Abstract Interpretation Plugins for Type Systems

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Guide Proceedings
    AMAST 2008: Proceedings of the 12th international conference on Algebraic Methodology and Software Technology
    July 2008
    429 pages
    ISBN:9783540799795

    Publisher

    Springer-Verlag

    Berlin, Heidelberg

    Publication History

    Published: 28 July 2008

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 0
      Total Downloads
    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 09 Jan 2025

    Other Metrics

    Citations

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media