Skip to main content

Expression-Based Aliasing for OO–languages

  • Conference paper
  • First Online:
Formal Techniques for Safety-Critical Systems (FTSCS 2014)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 476))

  • 543 Accesses

Abstract

Alias analysis has been an interesting research topic in verification and optimization of programs. The undecidability of determining whether two expressions in a program may reference to the same object is the main source of the challenges raised in alias analysis. In this paper we propose an extension of a previously introduced alias calculus based on program expressions, to the setting of unbounded program executions such as infinite loops and recursive calls. Moreover, we devise a corresponding executable specification in the \(\mathbb {K}\)-framework. An important property of our extension is that, in a non-concurrent setting, the corresponding alias expressions can be over-approximated in terms of a notion of regular expressions. This further enables us to show that the associated \(\mathbb {K}\)-machinery implements an algorithm that always stops and provides a sound over-approximation of the “may aliasing” information, where soundness stands for the lack of false negatives. As a case study, we analyze the integration and further applications of the alias calculus in SCOOP. The latter is an object-oriented programming model for concurrency, recently formalized in Maude; \(\mathbb {K}\) definitions can be compiled into Maude for execution.

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 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
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

References

  1. Albert, E., Arenas, P., Genaim, S., Puebla, G.: Field-sensitive value analysis by field-insensitive analysis. In: Cavalcanti, A., Dams, D.R. (eds.) FM 2009. LNCS, vol. 5850, pp. 370–386. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  2. Asavoae, I.M.: Abstract semantics for alias analysis in K. Electr. Notes Theor. Comput. Sci. 304, 97–110 (2014)

    Article  Google Scholar 

  3. Bouajjani, A., Esparza, J., Maler, O.: Reachability analysis of pushdown automata: application to model-checking. In: Mazurkiewicz, A., Winkowski, J. (eds.) CONCUR 1997. LNCS, vol. 1243, pp. 135–150. Springer, Heidelberg (1997)

    Google Scholar 

  4. Burke, M., Carini, P., Choi, J.-D., Hind, M.: Flow-insensitive interprocedural alias analysis in the presence of pointers. In: Pingali, K., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds.) Languages and Compilers for Parallel Computing. LNCS, vol. 892, pp. 234–250. Springer, Berlin Heidelberg (1995)

    Chapter  Google Scholar 

  5. Caltais, G.: Expression-based aliasing for OO-languages. CoRR, abs/1409.7509 (2014)

    Google Scholar 

  6. Chase, D.R.., Wegman, M.N., Zadeck, F.K.: Analysis of pointers and structures. In: PLDI, pp. 296–310 (1990)

    Google Scholar 

  7. Choi, J.-D., Burke, M., Carini, P.: Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects. In: Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1993, pp. 232–245. ACM, New York, NY, USA (1993)

    Google Scholar 

  8. Cousot, P., Cousot, R.: Abstract interpretation and application to logic programs. J. Log. Program. 13(2&3), 103–179 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  9. Diwan, A., McKinley, K.S., Moss, J.E.B.: Type-based alias analysis. SIGPLAN Not. 33(5), 106–117 (1998)

    Article  Google Scholar 

  10. Emami, M., Ghiya, R., Hendren, L.J.: Context-sensitive interprocedural points-to analysis in the presence of function pointers. In: Proceedings of the ACM SIGPLAN 1994 Conference on Programming Language Design and Implementation, PLDI 1994, pp. 242–256. ACM, New York, NY, USA (1994)

    Google Scholar 

  11. Hind, M.: Pointer analysis: haven’t we solved this problem yet? In: PASTE, pp. 54–61 (2001)

    Google Scholar 

  12. Hind, M., Burke, M., Carini, P., Choi, J.-D.: Interprocedural pointer alias analysis. ACM Trans. Program. Lang. Syst. 21(4), 848–894 (1999)

    Article  Google Scholar 

  13. Hoare, C.A.R.T., Möller, B., Struth, G., Wehrman, I.: Concurrent Kleene algebra. In: Bravetti, M., Zavattaro, G. (eds.) CONCUR 2009. LNCS, vol. 5710, pp. 399–414. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  14. Kleene, S.C.: Representation of events in nerve nets and finite automata. In: Shannon, C., McCarthy, J. (eds.) Automata Studies, pp. 3–41. Princeton University Press, Princeton (1956)

    Google Scholar 

  15. Kogtenkov, A., Meyer, B., Velder, S.: Alias and change calculi, applied to frame inference. CoRR, abs/1307.3189 (2013)

    Google Scholar 

  16. Landi, W.: Undecidability of static analysis. ACM Lett. Program. Lang. Syst. 1(4), 323–337 (1992)

    Article  Google Scholar 

  17. Landi, W., Ryder, B.G:. Pointer-induced aliasing: a problem classification. In: Proceedings of the 18th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1991, pp. 93–103. ACM, New York, NY, USA (1991)

    Google Scholar 

  18. Larus, J.R., Hilfinger, P.N.: Detecting conflicts between structure accesses. In: PLDI, pp. 21–34. ACM, New York (1988)

    Google Scholar 

  19. Meseguer, J., Roşu, G.: The rewriting logic semantics project: a progress report. In: Owe, O., Steffen, M., Telle, J.A. (eds.) FCT 2011. LNCS, vol. 6914, pp. 1–37. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  20. Meyer, B.: Eiffel: The Language. Prentice-Hall, Englewood Cliffs (1991)

    Google Scholar 

  21. Miné, A.: Field-sensitive value analysis of embedded C programs with union types and pointer arithmetics. In: Proceedings of the 2006 ACM SIGPLAN/SIGBED Conference on Language, Compilers, and Tool Support for Embedded Systems, LCTES 2006, pp. 54–63. ACM, New York, NY, USA (2006)

    Google Scholar 

  22. Morandi, B., Schill, M., Nanz, S., Meyer, B.: Prototyping a concurrency model. In: ACSD, pp. 170–179 (2013)

    Google Scholar 

  23. Myers. E.M.: A precise inter-procedural data flow algorithm. In: Proceedings of the 8th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1981, pp. 219–230. ACM, New York, NY, USA (1981)

    Google Scholar 

  24. Nienaltowski, P.: Practical Framework for Contract-based Concurrent Object-oriented Programming, ETH (2007)

    Google Scholar 

  25. Rabin, M.O., Scott, D.: Finite automata and their decision problems. IBM J. Res. Dev. 3(2), 114–125 (1959)

    Article  MathSciNet  Google Scholar 

  26. Robert, V., Leroy, X.: A formally-verified alias analysis. In: Hawblitzel, C., Miller, D. (eds.) CPP 2012. LNCS, vol. 7679, pp. 11–26. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  27. Rosu, G., Serbanuta, T.F.: K overview and SIMPLE case study. In Proceedings of International K Workshop (K 2011), ENTCS. Elsevier (2013) (to appear)

    Google Scholar 

  28. Şerbănuţă, T.F., Roşu, G.: K-Maude: a rewriting based tool for semantics of programming languages. In: Ölveczky, P.C. (ed.) WRLA 2010. LNCS, vol. 6381, pp. 104–122. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  29. Sridharan, M., Chandra, S., Dolby, J., Fink, S.J., Yahav, E.: Alias analysis for object-oriented programs. In: Clarke, D., Noble, J., Wrigstad, T. (eds.) Aliasing in Object-Oriented Programming. LNCS, vol. 7850, pp. 196–232. Springer, Heidelberg (2013)

    Google Scholar 

  30. Wilson, R.P., Lam, M.S.: Efficient context-sensitive pointer analysis for C programs. In: Proceedings of the ACM SIGPLAN 1995 Conference on Programming Language Design and Implementation, PLDI 1995, pp. 1–12. ACM, New York, NY, USA (1995)

    Google Scholar 

Download references

Acknowledgements

We are grateful for valuable comments to the anonymous reviewers, Măriuca Asăvoae, Alexander Kogtenkov, José Meseguer, Bertrand Meyer, Benjamin Morandi and Sergey Velder. The research leading to these results has received funding from the European Research Council under the European Union’s Seventh Framework Programme (FP7/2007–2013) / ERC Grant agreement no. 291389.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Georgiana Caltais .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Caltais, G. (2015). Expression-Based Aliasing for OO–languages. In: Artho, C., Ölveczky, P. (eds) Formal Techniques for Safety-Critical Systems. FTSCS 2014. Communications in Computer and Information Science, vol 476. Springer, Cham. https://doi.org/10.1007/978-3-319-17581-2_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-17581-2_4

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-17580-5

  • Online ISBN: 978-3-319-17581-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics