Skip to main content

A Java Supercompiler and Its Application to Verification of Cache-Coherence Protocols

  • Conference paper
Perspectives of Systems Informatics (PSI 2009)

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

Abstract

The Java Supercompiler (JScp) is a specializer of Java programs based on the Turchin’s supercompilation method and extended to support imperative and object-oriented notions absent in functional languages. It has been successfully applied to verification of a number of parameterized models including cache-coherence protocols. Protocols are modeled in Java following the method by G. Delzanno and experiments by A. Lisitsa and A. Nemytykh on verification of protocol models by means of the Refal Supercompiler SCP4. The part of the supercompilation method relevant to the protocol verification is reviewed. It deals with an imperative subset of Java.

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. Bardin, S., Finkel, A., Leroux, J., Petrucci, L.: Fast: acceleration from theory to practice. International Journal on Software Tools for Technology Transfer 10(5), 401–424 (2008)

    Article  Google Scholar 

  2. Broy, M., Zamulin, A.V. (eds.): PSI 2003. LNCS, vol. 2890. Springer, Heidelberg (2004)

    Google Scholar 

  3. Bulyonkov, M.A., Kochetov, D.V.: Practical aspects of specialization of algol-like programs. In: Danvy, O., Thiemann, P., Glück, R. (eds.) Dagstuhl Seminar 1996. LNCS, vol. 1110, pp. 17–32. Springer, Heidelberg (1996)

    Google Scholar 

  4. Chepovsky, A.M., Klimov, And.V., Klimov, Ark.V., Klimov, Y.A., Mishchenko, A.S., Romanenko, S.A., Skorobogatov, S.Y.: Partial evaluation for common intermediate language. In: Broy, Zamulin (eds.) [2], pp. 171–177

    Google Scholar 

  5. Consel, C., Lawall, J.L., Le Meur, A.-F.: A tour of Tempo: a program specializer for the C language. Sci. Comput. Program. 52, 341–370 (2004)

    Article  MATH  Google Scholar 

  6. Delzanno, G.: Automatic Verification of Cache Coherence Protocols via Infinite-state Constraint-based Model Checking, http://www.disi.unige.it/person/DelzannoG/protocol.html

  7. Delzanno, G.: Constraint-based verification of parameterized cache coherence protocols. Formal Methods in System Design 23(3), 257–301 (2003)

    Article  MATH  Google Scholar 

  8. Ershov, A.P.: Mixed computation: potential applications and problems for study. Theoretical Computer Science 18, 41–67 (1982)

    Article  MATH  MathSciNet  Google Scholar 

  9. Goertzel, B., Klimov, And.V., Klimov, Ark.V.: Supercompiling Java Programs, white paper (2002), http://www.supercompilers.com/white_paper.shtml

  10. Jones, N.D., Gomard, C.K., Sestoft, P.: Partial Evaluation and Automatic Program Generation. Prentice-Hall, Englewood Cliffs (1993)

    MATH  Google Scholar 

  11. Klimov, And.V.: An approach to supercompilation for object-oriented languages: the Java Supercompiler case study. In: Nemytykh [20], pp. 43–53 (2008), http://meta2008.pereslavl.ru/accepted-papers/paper-info-4.html

  12. Klimov, And.V.: JVer Project: Verification of Java programs by Java Supercompiler (2008), http://pat.keldysh.ru/jver/

  13. Klimov, And.V.: A Java Supercompiler and its application to verification of cache-coherence protocols. In: Perspectives of Systems Informatics (Proc. 7th International Andrei Ershov Memorial Conference, PSI 2009), Novosibirsk, Russia, June 15-19, pp. 141–149. Ershov Institute of Informatics Systems (2009)

    Google Scholar 

  14. Klimov, And.V., Klimov, Ark.V., Shvorin, A.B.: The Java Supercompiler Project, http://www.supercompilers.ru

  15. Klimov, Y.A.: An approach to polyvariant binding time analysis for a stack-based language. In: Nemytykh [20], pp. 78–84, http://meta2008.pereslavl.ru/accepted-papers/paper-info-6.html

  16. Lisitsa, A.P., Nemytykh, A.P.: Towards verification via supercompilation. In: COMPSAC (2), pp. 9–10. IEEE Computer Society, Los Alamitos (2005)

    Google Scholar 

  17. Lisitsa, A.P., Nemytykh, A.P.: Experiments on verification via supercompilation (2007), http://refal.botik.ru/protocols/

  18. Lisitsa, A.P., Nemytykh, A.P.: Reachability analysis in verification via supercompilation. Int. J. Found. Comput. Sci. 19(4), 953–969 (2008)

    Article  MATH  MathSciNet  Google Scholar 

  19. Nemytykh, A.P.: The supercompiler SCP4: General structure. In: Broy, Zamulin (eds.) [2], pp. 162–170

    Google Scholar 

  20. Nemytykh, A.P. (ed.): Proceedings of the First International Workshop on Metacomputation in Russia, July 2-5, 2008. Ailamazyan University of Pereslavl, Pereslavl-Zalessky (2008)

    Google Scholar 

  21. Schultz, U.P., Lawall, J.L., Consel, C.: Automatic program specialization for Java. ACM Trans. Program. Lang. Syst. 25(4), 452–499 (2003)

    Article  Google Scholar 

  22. Sørensen, M.H., Glück, R.: An algorithm of generalization in positive supercompilation. In: Lloyd, J.W. (ed.) International Logic Programming Symposium, Portland, Oregon, December 4-7, pp. 465–479. MIT Press, Cambridge (1995)

    Google Scholar 

  23. Turchin, V.F.: The concept of a supercompiler. Transactions on Programming Languages and Systems 8(3), 292–325 (1986)

    Article  MATH  MathSciNet  Google Scholar 

  24. Turchin, V.F.: The algorithm of generalization in the supercompiler. In: Bjørner, D., Ershov, A.P., Jones, N.D. (eds.) Partial Evaluation and Mixed Computation, pp. 531–549. North-Holland, Amsterdam (1988)

    Google Scholar 

  25. Turchin, V.F.: Supercompilation: techniques and results. In: Bjorner, D., Broy, M., Pottosin, I.V. (eds.) PSI 1996. LNCS, vol. 1181, pp. 227–248. Springer, Heidelberg (1996)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Klimov, A.V. (2010). A Java Supercompiler and Its Application to Verification of Cache-Coherence Protocols. In: Pnueli, A., Virbitskaite, I., Voronkov, A. (eds) Perspectives of Systems Informatics. PSI 2009. Lecture Notes in Computer Science, vol 5947. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-11486-1_16

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-11486-1_16

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-11485-4

  • Online ISBN: 978-3-642-11486-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics