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

  • Andrei V. Klimov
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5947)


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.


specialization verification supercompilation object-oriented languages Java 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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)CrossRefGoogle Scholar
  2. 2.
    Broy, M., Zamulin, A.V. (eds.): PSI 2003. LNCS, vol. 2890. Springer, Heidelberg (2004)Google Scholar
  3. 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. 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–177Google Scholar
  5. 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)zbMATHCrossRefGoogle Scholar
  6. 6.
    Delzanno, G.: Automatic Verification of Cache Coherence Protocols via Infinite-state Constraint-based Model Checking,
  7. 7.
    Delzanno, G.: Constraint-based verification of parameterized cache coherence protocols. Formal Methods in System Design 23(3), 257–301 (2003)zbMATHCrossRefGoogle Scholar
  8. 8.
    Ershov, A.P.: Mixed computation: potential applications and problems for study. Theoretical Computer Science 18, 41–67 (1982)zbMATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Goertzel, B., Klimov, And.V., Klimov, Ark.V.: Supercompiling Java Programs, white paper (2002),
  10. 10.
    Jones, N.D., Gomard, C.K., Sestoft, P.: Partial Evaluation and Automatic Program Generation. Prentice-Hall, Englewood Cliffs (1993)zbMATHGoogle Scholar
  11. 11.
    Klimov, And.V.: An approach to supercompilation for object-oriented languages: the Java Supercompiler case study. In: Nemytykh [20], pp. 43–53 (2008),
  12. 12.
    Klimov, And.V.: JVer Project: Verification of Java programs by Java Supercompiler (2008),
  13. 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. 14.
    Klimov, And.V., Klimov, Ark.V., Shvorin, A.B.: The Java Supercompiler Project,
  15. 15.
    Klimov, Y.A.: An approach to polyvariant binding time analysis for a stack-based language. In: Nemytykh [20], pp. 78–84,
  16. 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. 17.
    Lisitsa, A.P., Nemytykh, A.P.: Experiments on verification via supercompilation (2007),
  18. 18.
    Lisitsa, A.P., Nemytykh, A.P.: Reachability analysis in verification via supercompilation. Int. J. Found. Comput. Sci. 19(4), 953–969 (2008)zbMATHCrossRefMathSciNetGoogle Scholar
  19. 19.
    Nemytykh, A.P.: The supercompiler SCP4: General structure. In: Broy, Zamulin (eds.) [2], pp. 162–170Google Scholar
  20. 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. 21.
    Schultz, U.P., Lawall, J.L., Consel, C.: Automatic program specialization for Java. ACM Trans. Program. Lang. Syst. 25(4), 452–499 (2003)CrossRefGoogle Scholar
  22. 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. 23.
    Turchin, V.F.: The concept of a supercompiler. Transactions on Programming Languages and Systems 8(3), 292–325 (1986)zbMATHCrossRefMathSciNetGoogle Scholar
  24. 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. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Andrei V. Klimov
    • 1
  1. 1.Keldysh Institute of Applied MathematicsRussian Academy of SciencesMoscowRussia

Personalised recommendations