Skip to main content

Definite Expression Aliasing Analysis for Java Bytecode

  • Conference paper
Book cover Theoretical Aspects of Computing – ICTAC 2012 (ICTAC 2012)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7521))

Included in the following conference series:

Abstract

We define a novel static analysis for Java bytecode, called definite expression aliasing. It infers, for each variable v at each program point p, a set of expressions whose value at p is equal to the value of v at p, for every possible execution of the program. Namely, it determines which expressions must be aliased to local variables and stack elements of the Java Virtual Machine. This is a useful piece of information for a static analyzer, such as Julia, since it can be used to refine other analyses at conditional statements or assignments. We formalize and implement a constraint-based analysis, defined and proved correct in the abstract interpretation framework. Moreover, we show the benefits of our definite expression aliasing analysis for nullness and termination analysis with Julia.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 72.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Soot: A Java Optimization Framework, http://www.sable.mcgill.ca/soot/

  2. WALA: T.J. Watson Libraries for Analysis, http://wala.sourceforge.net/

  3. Aho, A.V., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques and Tools. Addison-Wesley (1986)

    Google Scholar 

  4. Albert, E., Arenas, P., Genaim, S., Puebla, G., Ramírez Deantes, D.V.: From Object Fields to Local Variables: A Practical Approach to Field-Sensitive Analysis. In: Cousot, R., Martel, M. (eds.) SAS 2010. LNCS, vol. 6337, pp. 100–116. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  5. Cousot, P., Cousot, R.: Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In: Proc. of the 4th Symp. on Principles of Programming Languages (POPL), pp. 238–252. ACM (1977)

    Google Scholar 

  6. Fink, S., Yahav, E., Dor, N., Ramalingam, G., Geay, E.: Effective Typestate Verification in the Presence of Aliasing. In: Proc. of the International Symposium on Software Testing and Analysis (ISSTA), pp. 133–144. ACM (2006)

    Google Scholar 

  7. Hind, M.: Pointer Analysis: Haven’t We Solved This Problem Yet? In: Proc. of the Workshop on Prog. Analysis for Software Tools and Engineering (PASTE), pp. 54–61. ACM (2001)

    Google Scholar 

  8. Lindholm, T., Yellin, F.: The JavaTM Virtual Machine Specification, 2nd edn. Addison-Wesley (1999)

    Google Scholar 

  9. Logozzo, F., Fähndrich, M.: On the Relative Completeness of Bytecode Analysis Versus Source Code Analysis. In: Hendren, L. (ed.) CC 2008. LNCS, vol. 4959, pp. 197–212. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  10. Nikolić, Đ., Spoto, F.: Definite Expression Aliasing Analysis for Java Bytecode, http://profs.sci.univr.it/~nikolic/download/ICTAC2012/ICTAC2012Ext.pdf

  11. Nikolić, Đ., Spoto, F.: Reachability Analysis of Program Variables. In: Gramlich, B., Miller, D., Sattler, U. (eds.) IJCAR 2012. LNCS (LNAI), vol. 7364, pp. 423–438. Springer, Heidelberg (2012)

    Google Scholar 

  12. Ohata, F., Inoue, K.: JAAT: Java Alias Analysis Tool for Program Maintenance Activities. In: Proc. of the 9th International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC), pp. 232–244. IEEE (2006)

    Google Scholar 

  13. Spoto, F.: Precise Null-pointer Analysis. Software and Syst. Modeling 10(2), 219–252 (2011)

    Article  Google Scholar 

  14. Spoto, F., Ernst, M.D.: Inference of Field Initialization. In: Proc. of the 33rd International Conference on Software Engineering (ICSE), pp. 231–240. ACM (2011)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Nikolić, Đ., Spoto, F. (2012). Definite Expression Aliasing Analysis for Java Bytecode. In: Roychoudhury, A., D’Souza, M. (eds) Theoretical Aspects of Computing – ICTAC 2012. ICTAC 2012. Lecture Notes in Computer Science, vol 7521. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-32943-2_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-32943-2_6

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-32942-5

  • Online ISBN: 978-3-642-32943-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics