Skip to main content

Abstract Compilation of Object-Oriented Languages into Coinductive CLP(X): Can Type Inference Meet Verification?

  • Conference paper
Formal Verification of Object-Oriented Software (FoVeOOS 2010)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6528))

Abstract

This paper further investigates the potential and practical applicability of abstract compilation in two different directions. First, we formally define an abstract compilation scheme for precise prediction of uncaught exceptions for a simple Java-like language; besides the usual user declared checked exceptions, the analysis covers the runtime ClassCastException. Second, we present a general implementation schema for abstract compilation based on coinductive CLP with variance annotation of user-defined predicates, and propose an implementation based on a Prolog prototype meta-interpreter, parametric in the solver for the subtyping constraints.

This work has been partially supported by MIUR DISCO - Distribution, Interaction, Specification, Composition for Object Systems.

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 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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ancona, D., Corradi, A., Lagorio, G., Damiani, F.: Abstract compilation of object-oriented languages into coinductive CLP(X): can type inference meet verification (extended version). Technical report, DISI (August 2010), ftp://ftp.disi.unige.it/person/AnconaD/ACLD10ext.pdf

  2. Ancona, D., Lagorio, G.: Coinductive type systems for object-oriented languages. In: Drossopoulou, S. (ed.) ECOOP 2009. LNCS, vol. 5653, pp. 2–26. Springer, Heidelberg (2009); Best paper prize

    Chapter  Google Scholar 

  3. Ancona, D., Lagorio, G.: Coinductive subtyping for abstract compilation of object-oriented languages into Horn formulas. In: GandALF 2010. Electronic Proceedings in Theoretical Computer Science (2010)

    Google Scholar 

  4. Ancona, D., Lagorio, G.: Complete coinductive subtyping for abstract compilation of object-oriented languages. In: 12th Intl. Workshop on Formal Techniques for Java-like Programs, ACM Digital Library (2010)

    Google Scholar 

  5. Ancona, D., Lagorio, G.: Idealized coinductive type systems for imperative object-oriented programs. Technical report, DISI, Submitted for journal publication (January 2010)

    Google Scholar 

  6. Ancona, D., Lagorio, G., Zucca, E.: Type inference by coinductive logic programming. In: Berardi, S., Damiani, F., de’Liguoro, U. (eds.) TYPES 2008. LNCS, vol. 5497, pp. 1–18. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  7. Barbanera, F., Dezani-Cincaglini, M., de Liguoro, U.: Intersection and union types: Syntax and semantics. Information and Computation 119(2), 202–230 (1995)

    Article  MathSciNet  MATH  Google Scholar 

  8. Courcelle, B.: Fundamental properties of infinite trees. TCS 25, 95–169 (1983)

    Article  MathSciNet  MATH  Google Scholar 

  9. Cytron, R., Ferrante, J., Rosen, B.K., Wegman, M.N., Zadeck, F.K.: Efficiently computing static single assignment form and the control dependence graph. ACM TOPLAS 13, 451–490 (1991)

    Article  Google Scholar 

  10. Frühwirth, T.: Constraint Handling Rules. Cambridge University Press, Cambridge (2009)

    Book  MATH  Google Scholar 

  11. Gosling, J., Joy, B., Steele, G.L., Bracha, G.: The Java language specification, 3rd edn. The Java series. Addison-Wesley, Reading (2005)

    MATH  Google Scholar 

  12. Hermenegildo, M., Warren, R., Debray, K.: Global flow analysis as a practical compilation tool. J. Log. Program. 13(4), 349–366 (1992)

    Article  Google Scholar 

  13. Igarashi, A., Nagira, H.: Union types for object-oriented programming. Journ. of Object Technology 6(2), 47–68 (2007)

    Article  Google Scholar 

  14. Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: a minimal core calculus for Java and GJ. ACM TOPLAS 23(3), 396–450 (2001)

    Article  Google Scholar 

  15. Jaffar, J., Maher, M.J.: Constraint logic programming: A survey. J. Log. Program. 19(20), 503–581 (1994)

    Article  MathSciNet  MATH  Google Scholar 

  16. Jo, J., Chang, B., Yi, K., Choe, K.: An uncaught exception analysis for Java. Journal of Systems and Software 72(1), 59–69 (2004)

    Article  Google Scholar 

  17. Min, R., Gupta, G.: Coinductive logic programming and its application to boolean sat. In: FLAIRS Conference (2009)

    Google Scholar 

  18. Saeedloei, N., Gupta, G.: Verifying complex continuous real-time systems with coinductive CLP(R). In: Dediu, A.-H., Fernau, H., Martín-Vide, C. (eds.) LATA 2010. LNCS, vol. 6031, pp. 536–548. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  19. Odersky, M., Sulzmann, M., Wehr, M.: Type inference with constrained types. Theory and Practice of Object Systems 5(1), 35–55 (1999)

    Article  Google Scholar 

  20. Simon, L., Bansal, A., Mallya, A., Gupta, G.: Co-logic programming: Extending logic programming with coinduction. In: Arge, L., Cachin, C., Jurdziński, T., Tarlecki, A. (eds.) ICALP 2007. LNCS, vol. 4596, pp. 472–483. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  21. Simon, L., Mallya, A., Bansal, A., Gupta, G.: Coinductive logic programming. In: Etalle, S., Truszczyński, M. (eds.) ICLP 2006. LNCS, vol. 4079, pp. 330–345. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  22. Sulzmann, M., Stuckey, P.J.: HM(X) type inference is CLP(X) solving. Journ. of Functional Programming 18(2), 251–283 (2008)

    Article  MathSciNet  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ancona, D., Corradi, A., Lagorio, G., Damiani, F. (2011). Abstract Compilation of Object-Oriented Languages into Coinductive CLP(X): Can Type Inference Meet Verification?. In: Beckert, B., Marché, C. (eds) Formal Verification of Object-Oriented Software. FoVeOOS 2010. Lecture Notes in Computer Science, vol 6528. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-18070-5_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-18070-5_3

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-18069-9

  • Online ISBN: 978-3-642-18070-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics