[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article

Soundly Handling Static Fields: Issues, Semantics and Analysis

Published: 01 December 2009 Publication History

Abstract

Although in most cases class initialization works as expected, some static fields may be read before being initialized, despite being initialized in their corresponding class initializer. We propose an analysis which compute, for each program point, the set of static fields that must have been initialized and discuss its soundness. We show that such an analysis can be directly applied to identify the static fields that may be read before being initialized and to improve the precision while preserving the soundness of a null-pointer analysis.

References

[1]
Bodik, R., R. Gupta and V. Sarkar, ABCD: eliminating array bounds checks on demand, in: Proc. of PLDI, 2000, pp. 321--333
[2]
Börger, E. and Schulte, W., A programmer friendly modular definition of the semantics of java. In: LNCS, pp. 353-404.
[3]
Börger, E. and Schulte, W., Initialization problems for java. Software - Concepts and Tools. v19. 175-178.
[4]
Debbabi, M., Tawbi, N. and Yahyaoui, H., A formal dynamic semantics of java: An essential ingredient of java security. Journal of Telecommunications and Information Technology. v4. 81-119.
[5]
Fähndrich, M. and Leino, K.R.M., Declaring and checking non-null types in an object-oriented language. ACM SIGPLAN Notices. v38. 302-312.
[6]
Fähndrich, M. and S. Xia, Establishing object invariants with delayed types, in: Proc. of OOPSLA (2007), pp. 337--350
[7]
Harrold, M.J. and Soffa, M.L., Efficient computation of interprocedural definition-use chains. TOPLAS. v16. 175-204.
[8]
Hirzel, M., A. Diwan and M. Hind, Pointer analysis in the presence of dynamic class loading, in: Proc. of ECOOP, 2004, pp. 96--122
[9]
Hubert, L., A Non-Null annotation inferencer for Java bytecode, in: Proc. of PASTE (2008), (To Appear)
[10]
Hubert, L., Jensen, T. and Pichardie, D., Semantic foundations and inference of non-null annotations. In: LNCS, vol. 5051. pp. 132-149.
[11]
Kozen, D. and M. Stillerman, Eager class initialization for java, in: Proc. of FTRTFT (2002), pp. 71--80
[12]
Lindholm, T. and Yellin, F., The JavaTM Virtual Machine Specification, Second Edition. 1999. Prentice Hall PTR.
[13]
Livshits, B., J. Whaley and M. S. Lam, Reflection analysis for java, in: Proc of APLAS, 2005
[14]
Belblidia, N. and Debbabi, M., A dynamic operational semantics for JVML. Journal of Object Technology. v6. 71-100.
[15]
Necula, G., Proof-Carrying Code, in: Proc. of POPL (1997), pp. 106--119
[16]
Unkel, C. and M. S. Lam, Automatic inference of stationary fields: a generalization of java's final fields, in: Proc. of POPL (2008), pp. 183--195

Cited By

View all
  • (2023)Initializing Global Objects: Time and OrderProceedings of the ACM on Programming Languages10.1145/36228447:OOPSLA2(1310-1337)Online publication date: 16-Oct-2023
  • (2009)A predictable Java profileProceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems10.1145/1620405.1620427(150-159)Online publication date: 23-Sep-2009
  1. Soundly Handling Static Fields: Issues, Semantics and Analysis

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image Electronic Notes in Theoretical Computer Science (ENTCS)
    Electronic Notes in Theoretical Computer Science (ENTCS)  Volume 253, Issue 5
    December, 2009
    156 pages

    Publisher

    Elsevier Science Publishers B. V.

    Netherlands

    Publication History

    Published: 01 December 2009

    Author Tags

    1. Java
    2. class initialization
    3. control flow
    4. semantics
    5. static analysis
    6. verification

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

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

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Initializing Global Objects: Time and OrderProceedings of the ACM on Programming Languages10.1145/36228447:OOPSLA2(1310-1337)Online publication date: 16-Oct-2023
    • (2009)A predictable Java profileProceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems10.1145/1620405.1620427(150-159)Online publication date: 23-Sep-2009

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media