Skip to main content

Rewriting Logic Semantics: From Language Specifications to Formal Analysis Tools

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 3097))

Abstract

Formal semantic definitions of concurrent languages, when specified in a well-suited semantic framework and supported by generic and efficient formal tools, can be the basis of powerful software analysis tools. Such tools can be obtained for free from the semantic definitions; in our experience in just the few weeks required to define a language’s semantics even for large languages like Java. By combining, yet distinguishing, both equations and rules, rewriting logic semantic definitions unify both the semantic equations of equational semantics (in their higher-order denotational version or their first-order algebraic counterpart) and the semantic rules of SOS. Several limitations of both SOS and equational semantics are thus overcome within this unified framework. By using a high-performance implementation of rewriting logic such as Maude, a language’s formal specification can be automatically transformed into an efficient interpreter. Furthermore, by using Maude’s breadth first search command, we also obtain for free a semi-decision procedure for finding failures of safety properties; and by using Maude’s LTL model checker, we obtain, also for free, a decision procedure for LTL properties of finite-state programs. These possibilities, and the competitive performance of the analysis tools thus obtained, are illustrated by means of a concurrent Caml-like language; similar experience with Java (source and JVM) programs is also summarized.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Proceedings of WRLA 1996, September 1996. ENTCS, vol. 4, Elsevier, Amsterdam (1996), http://www.elsevier.nl/locate/entcs/volume4.html

  2. Baker, H., Hewitt, C.: Laws for communicating parallel processes. In: Proceedings of the 1977 IFIP Congress, pp. 987–992. IFIP Press (1977)

    Google Scholar 

  3. Basin, D., Denker, G.: Maude versus Haskell: an experimental comparison in security protocol analysis. In: Proc. 3rd. WRLA. ENTCS, Elsevier, Amsterdam (2000)

    Google Scholar 

  4. Berry, G., Boudol, G.: The chemical abstract machine. Theoretical Computer Science 96(1), 217–248 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  5. Best, E., Devillers, R.: Sequential and concurrent behavior in Petri net theory. Theoretical Computer Science 55, 87–136 (1989)

    Article  MathSciNet  Google Scholar 

  6. Borovanský, P., Kirchner, C., Kirchner, H., Moreau, P.-E.: ELAN from a rewriting logic point of view. Theoretical Computer Science 285, 155–185 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  7. Boudol, G.: Computational semantics of term rewriting systems. In: Algebraic Methods in Semantics, pp. 169–236. Cambridge University Press, Cambridge (1985)

    Google Scholar 

  8. Braga, C.: Rewriting Logic as a Semantic Framework for Modular Structural Operational Semantics. PhD thesis, Departamento de Informática, Pontificia Universidade Católica de Rio de Janeiro, Brasil (2001)

    Google Scholar 

  9. Braga, C., Haeusler, E.H., Meseguer, J., Mosses, P.D.: Mapping modular SOS to rewriting logic. In: Leuschel, M. (ed.) LOPSTR 2002. LNCS, vol. 2664, pp. 262–277. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  10. Braga, C., Meseguer, J.: Modular rewriting semantics in practice. In: Proc. WRLA 2004. ENTCS (2004)

    Google Scholar 

  11. Brat, G., Havelund, K., Park, S., Visser, W.: Model checking programs. In: ASE 2000, pp. 3–12 (2000)

    Google Scholar 

  12. Broy, M., Wirsing, M., Pepper, P.: On the algebraic definition of programming languages. ACM Trans. on Prog. Lang. and Systems 9(1), 54–99 (1987)

    Article  MATH  Google Scholar 

  13. Bruni, R.: Tile Logic for Synchronized Rewriting of Concurrent Systems. PhD thesis, Dipartimento di Informatica, Università di Pisa (1999), Technical Report TD-1/99, http://www.di.unipi.it/phd/tesi/tesi_1999/TD-1-99.ps.gz

  14. Bruni, R., Meseguer, J.: Generalized rewrite theories. In: Baeten, J.C.M., Lenstra, J.K., Parrow, J., Woeginger, G.J. (eds.) ICALP 2003. LNCS, vol. 2719, pp. 252–266. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  15. Carabetta, G., Degano, P., Gadducci, F.: CCS semantics via proved transition systems and rewriting logic. In: Proceedings of WRLA 1998, September 1-4. ENTCS, vol. 15, pp. 253–272. Elsevier, Amsterdam (1998), http://www.elsevier.nl/locate/entcs/volume15.html

    Google Scholar 

  16. Chen, F., Roşu, G., Venkatesan, R.P.: Rule-based analysis of dimensional safety. In: Nieuwenhuis, R. (ed.) RTA 2003. LNCS, vol. 2706, pp. 197–207. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  17. Clarke, E., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (2001)

    Google Scholar 

  18. Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Quesada, J.: Maude: specification and programming in rewriting logic. Theoretical Computer Science 285, 187–243 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  19. Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Talcott, C.: Maude 2.0 Manual (June 2003), http://maude.cs.uiuc.edu

  20. Clavel, M., Durán, F., Eker, S., Meseguer, J.: Building equational proving tools by reflection in rewriting logic. In: CAFE: An Industrial-Strength Algebraic Formal Method, Elsevier, Amsterdam (2000), http://maude.cs.uiuc.edu

    Google Scholar 

  21. Clément, D., Despeyroux, J., Hascoet, L., Kahn, G.: Natural semantics on the computer. In: Proceedings, France-Japan AI and CS Symposium, pp. 49–89. ICOT, Also, Information Processing Society of Japan, Technical Memorandum PL-86-6 (1986)

    Google Scholar 

  22. Degano, P., Gadducci, F., Priami, C.: A causal semantics for CCS via rewriting logic. Theoretical Computer Science 275(1-2), 259–282 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  23. De Nicola, R., Montanari, U. (eds.): Selected papers of the 2nd workshop on concurrency and compositionality, March 1990. Theoretical Computer Science, vol. 96(1) (1992)

    Google Scholar 

  24. Eker, S., Meseguer, J., Sridharanarayanan, A.: The Maude LTL model checker. In: Proc. 4th. WRLA. ENTCS, Elsevier, Amsterdam (2002)

    Google Scholar 

  25. Farzan, A., Chen, F., Meseguer, J., Roşu, G.: JavaFAN, http://fsl.cs.uiuc.edu/javafan

  26. Farzan, A., Cheng, F., Meseguer, J., Roşu, G.: Formal analysis of Java programs in JavaFAN. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 501–505. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  27. Farzan, A., Meseguer, J., Roşu, G.: Formal JVM code analysis in JavaFAN. In: Rattray, C., Maharaj, S., Shankland, C. (eds.) AMAST 2004. LNCS, vol. 3116, pp. 132–147. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  28. Futatsugi, K., Diaconescu, R.: Cafe OBJ Report. AMAST Series. World Scientific, Singapore (1998)

    Google Scholar 

  29. Gadducci, F., Montanari, U.: The tile model. In: Plotkin, G., Stirling, C., Tofte, M. (eds.) Proof, Language and Interaction: Essays in Honour of Robin Milner, pp. 133–166. MIT Press, Cambridge (2000)

    Google Scholar 

  30. Goguen, J.A., Malcolm, G.: Algebraic Semantics of Imperative Programs. MIT Press, Cambridge (1996)

    MATH  Google Scholar 

  31. Goguen, J.A., Parsaye-Ghomi, K.: Algebraic denotational semantics using parameterized abstract modules. In: Díaz, J., Ramos, I. (eds.) Formalization of Programming Concepts. LNCS, vol. 107, pp. 292–309. Springer, Heidelberg (1981)

    Google Scholar 

  32. Havelund, K., Lowry, M., Park, S., Pecheur, C., Penix, J., Visser, W., White, J.: Formal analysis of the remote agent before and after flight. In: The 5th NASA Langley Formal Methods Workshop (2000)

    Google Scholar 

  33. Havelund, K., Lowry, M., Penix, J.: Formal Analysis of a Space Craft Controller using SPIN. IEEE Transactions on Software Engineering 27(8), 749–765 (2001); Previous version appeared in Proceedings of the 4th SPIN workshop (1998)

    Article  Google Scholar 

  34. Havelund, K., Pressburger, T.: Model checking Java programs using Java PathFinder. Software Tools for Technology Transfer 2(4), 366–381 (2000)

    Article  MATH  Google Scholar 

  35. Hennessy, M.: The Semantics of Programming Languages: An Elementary Introduction Using Structural Operational Semantics. John Willey & Sons, West Sussex (1990)

    MATH  Google Scholar 

  36. Hintermeier, C.: How to transform canonical decreasing ctrss into equivalent canonical trss. In: Lindenstrauss, N., Dershowitz, N. (eds.) CTRS 1994. LNCS, vol. 968, Springer, Heidelberg (1995)

    Google Scholar 

  37. Jacobs, B., Poll, E.: Java program verification at Nijmegen: Developments and perspective. Technical Report NIII-R0318, Computing Science Institute, University of Nijmegen (2000)

    Google Scholar 

  38. Johnsen, E.B., Owe, O., Axelsen, E.W.: A runtime environment for concurrent objects with asynchronous method calls. In: Proc. 5th. Intl. Workshop on Rewriting Logic and its Applications. ENTCS, Elsevier, Amsterdam (2004)

    Google Scholar 

  39. Laneve, C., Montanari, U.: Axiomatizing permutation equivalence. Mathematical Structures in Computer Science 6, 219–249 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  40. Martí-Oliet, N., Meseguer, J.: Rewriting logic as a logical and semantic framework. In: Handbook of Philosophical Logic, 2nd edn., pp. 1–87. Kluwer Academic Publishers, Dordrecht (2002)

    Google Scholar 

  41. Meseguer, J.: Conditional rewriting logic as a unified model of concurrency. Theoretical Computer Science 96(1), 73–155 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  42. Meseguer, J.: A logical theory of concurrent objects and its realization in the Maude language. In: Research Directions in Concurrent Object-Oriented Programming, pp. 314–390. The MIT Press, Cambridge (1993)

    Google Scholar 

  43. Meseguer, J.: Rewriting logic as a semantic framework for concurrency: A progress report. In: Sassone, V., Montanari, U. (eds.) CONCUR 1996. LNCS, vol. 1119, pp. 331–372. Springer, Heidelberg (1996)

    Google Scholar 

  44. Meseguer, J.: Membership algebra as a logical framework for equational specification. In: Parisi-Presicce, F. (ed.) WADT 1997. LNCS, vol. 1376, pp. 18–61. Springer, Heidelberg (1998)

    Google Scholar 

  45. Meseguer, J.: Software specification and verification in rewriting logic. In: Models, Algebras, and Logic of Engineering Software, NATO Advanced Study Institute, July 30 - August 11, 2002, pp. 133–193. IOS Press, Amsterdam (2003)

    Google Scholar 

  46. Meseguer, J.: Lecture notes on program verification. CS 376. University of Illinois (Fall 2003) http://www-courses.cs.uiuc.edu/~cs376/

    Google Scholar 

  47. Meseguer, J., Braga, C.: Modular rewriting semantics of programming languages. In: Rattray, C., Maharaj, S., Shankland, C. (eds.) AMAST 2004. LNCS, vol. 3116, pp. 364–378. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  48. Meseguer, J., Futatsugi, K., Winkler, T.: Using rewriting logic to specify, program, integrate, and reuse open concurrent systems of cooperating agents. In: Proceedings of the 1992 International Symposium on New Models for Software Architecture, November 1992, pp. 61–106 (1992)

    Google Scholar 

  49. Meseguer, J., Montanari, U.: Mapping tile logic into rewriting logic. In: Parisi-Presicce, F. (ed.) WADT 1997. LNCS, vol. 1376, pp. 62–91. Springer, Heidelberg (1998)

    Google Scholar 

  50. Meseguer, J., Talcott, C.L.: A partial order event model for concurrent objects. In: Baeten, J.C.M., Mauw, S. (eds.) CONCUR 1999. LNCS, vol. 1664, pp. 415–430. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  51. Milner, R.: Functions as processes. Mathematical Structures in Computer Science 2(2), 119–141 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  52. Moore, J.: Inductive assertions and operational semantics. In: Geist, D., Tronci, E. (eds.) CHARME 2003. LNCS, vol. 2860, pp. 289–303. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  53. Moore, J., Krug, R., Liu, H., Porter, G.: Formal models of Java at the JVM level – a survey from the ACL2 perspective. In: Proc. Workshop on Formal Techniques for Java Programs, in association with ECOOP 2001 (2002)

    Google Scholar 

  54. Moore, J.S.: http://www.cs.utexas.edu/users/xli/prob/p4/p4.html

  55. Mosses, P.D.: Modular structural operational semantics, to appear in J. Logic and Algebraic Programming (September 2003) (manuscript)

    Google Scholar 

  56. Mosses, P.D.: Denotational semantics. In: Handbook of Theoretical Computer Science, vol. B, North-Holland, Amsterdam (1990)

    Google Scholar 

  57. Mosses, P.D.: Foundations of modular SOS. In: Kutyłowski, M., Wierzbicki, T., Pacholski, L. (eds.) MFCS 1999. LNCS, vol. 1672, pp. 70–80. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  58. Mosses, P.D.: Pragmatics of modular SOS. In: Kirchner, H., Ringeissen, C. (eds.) AMAST 2002. LNCS, vol. 2422, pp. 21–40. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  59. Ölveczky, P.C.: Specification and Analysis of Real-Time and Hybrid Systems in Rewriting Logic. PhD thesis, University of Bergen, Norway (2000), http://maude.csl.sri.com/papers

  60. Ölveczky, P.C., Meseguer, J.: Specification of real-time and hybrid systems in rewriting logic. Theoretical Computer Science 285, 359–405 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  61. Park, D.Y.W., Stern, U., Sakkebaek, J.U., Dill, D.L.: Java model checking. In: ASE 2001, pp. 253–256 (2000)

    Google Scholar 

  62. Plotkin, G.D.: A structural approach to operational semantics. Technical Report DAIMI FN-19, Computer Science Dept., Aarhus University (1981)

    Google Scholar 

  63. Reynolds, J.C.: The discoveries of continuations. LISP and Symbolic Computation 6(3-4), 233–247 (1993)

    Article  Google Scholar 

  64. Roşu, G.: Lecture notes on program language design. CS 322, University of Illinois at Urbana-Champaign (Fall 2003)

    Google Scholar 

  65. Roşu, G., Venkatesan, R.P., Whittle, J., Leustean, L.: Certifying optimality of state estimation programs. In: Hunt Jr., W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 301–314. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  66. Roşu, G., Whittle, J.: Towards certifying domain-specific properties of synthesized code. In: Proceedings, International Conference on Automated Software Engineering (ASE 2002), IEEE, Edinburgh (2002)

    Google Scholar 

  67. Scott, D.: Outline of a mathematical theory of computation. In: Proceedings, Fourth Annual Princeton Conference on Information Sciences and Systems, pp. 169–176. Princeton University, Princeton (1970)

    Google Scholar 

  68. Steggles, L.J.: Rewriting logic and Elan: Prototyping tools for Petri nets with time. In: Colom, J.-M., Koutny, M. (eds.) ICATPN 2001. LNCS, vol. 2075, pp. 363–381. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  69. Stehr, M.-O.: CINNI — A generic calculus of explicit substitutions and its application to λ-, ς- and π-calculi. In: Proc. 3rd. Intl. Workshop on Rewriting Logic and its Applications. ENTCS, Elsevier, Amsterdam (2000)

    Google Scholar 

  70. Stehr, M.-O.: A rewriting semantics for algebraic nets. In: Stehr, M.-O. (ed.) Petri Nets for System Engineering — A Guide to Modeling, Verification, and Applications, Springer, Heidelberg (2001)

    Google Scholar 

  71. Stehr, M.-O.: Programming, Specification, and Interactive Theorem Proving — Towards a Unified Language based on Equational Logic, Rewriting Logic, and Type Theory. Doctoral Thesis, Universität Hamburg, Fachbereich Informatik, Germany (2002), http://www.sub.uni-hamburg.de/disse/810/

  72. Stehr, M.-O., Meseguer, J.: Pure type systems in rewriting logic: Specifying typed higher-order languages in a first-order logical framework. In: Owe, O., Krogdahl, S., Lyche, T. (eds.) From Object-Orientation to Formal Methods. LNCS, vol. 2635, pp. 334–375. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  73. Stehr, M.-O., Meseguer, J., Ölveczky, P.: Rewriting logic as a unifying framework for Petri nets. In: Ehrig, H., Juhás, G., Padberg, J., Rozenberg, G. (eds.) APN 2001. LNCS, vol. 2128, pp. 250–303. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  74. Stehr, M.-O., Talcott, C.: Plan in Maude: Specifying an active network programming language. In: Proc. 4th. WRLA. ENTCS, Elsevier, Amsterdam (2002)

    Google Scholar 

  75. Strachey, C.: Fundamental concepts in programming languages. Higher-Order and Symbolic Computation 13, 11–49 (2000)

    Article  MATH  Google Scholar 

  76. Talcott, C.L.: Interaction semantics for components of distributed systems. In: Proceedings of FMOODS 1996, pp. 154–169. Chapman & Hall, Boca Raton (1997)

    Google Scholar 

  77. Talcott, C.L.: Actor theories in rewriting logic. Theoretical Computer Science 285 (2002)

    Google Scholar 

  78. Thati, P., Sen, K., Martí-Oliet, N.: An executable specification of asynchronous Pi-Calculus semantics and may testing in Maude 2.0. In: Proc. 4th. WRLA. ENTCS, Elsevier, Amsterdam (2002)

    Google Scholar 

  79. Turi, D.: Functorial Operational Semantics and its Denotational Dual. PhD thesis, Free University, Amsterdam (1996)

    Google Scholar 

  80. Verdejo, A.: Maude como marco semántico ejecutable. PhD thesis, Facultad de Informática, Universidad Complutense, Madrid, Spain (2003)

    Google Scholar 

  81. Verdejo, A., Martí-Oliet, N.: Executable structural operational semantics in Maude. Dto. Sistemas Informáticos y Programación, Universidad Complutense, Madrid (August 2003) (manuscript)

    Google Scholar 

  82. Verdejo, A., Martí-Oliet, N.: Executing E-LOTOS processes in Maude. In: INT 2000, Extended Abstracts, Technical report 2000/04, Technische Universitat Berlin, March 2000, pp. 49–53 (2000)

    Google Scholar 

  83. Verdejo, A., Martí-Oliet, N.: Implementing CCS in Maude. In: Formal Methods For Distributed System Development. FORTE/PSTV 2000 IFIP TC6 WG6, IFIP, vol. 183, pp. 351–366 (2000)

    Google Scholar 

  84. Verdejo, A., Martí-Oliet, N.: Implementing CCS in Maude 2. In: Proc. 4th. WRLA. ENTCS, Elsevier, Amsterdam (2002)

    Google Scholar 

  85. Viry, P.: Input/output for ELAN. In: Proceedings of WRLA 1996 [1], September 3-6, pp. 51–64 (1996), http://www.elsevier.nl/locate/entcs/volume4.html

  86. Viry, P.: Elimination of conditions. Journal of Symbolic Computation 28(3), 381–401 (1999)

    Article  MATH  MathSciNet  Google Scholar 

  87. Viry, P.: Equational rules for rewriting logic. Theoretical Computer Science 285, 487–517 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  88. Visser, W., Havelund, K., Brat, G., Park, S.: Java PathFinder - second generation of a Java model checker. In: Proceedings of Post-CAV Workshop on Advances in Verification (2000)

    Google Scholar 

  89. Wand, M.: First-order identities as a defining language. Acta Informatica 14, 337–357 (1980)

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Meseguer, J., Roşu, G. (2004). Rewriting Logic Semantics: From Language Specifications to Formal Analysis Tools. In: Basin, D., Rusinowitch, M. (eds) Automated Reasoning. IJCAR 2004. Lecture Notes in Computer Science(), vol 3097. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-25984-8_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-25984-8_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-22345-0

  • Online ISBN: 978-3-540-25984-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics