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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Proceedings of WRLA 1996, September 1996. ENTCS, vol. 4, Elsevier, Amsterdam (1996), http://www.elsevier.nl/locate/entcs/volume4.html
Baker, H., Hewitt, C.: Laws for communicating parallel processes. In: Proceedings of the 1977 IFIP Congress, pp. 987–992. IFIP Press (1977)
Basin, D., Denker, G.: Maude versus Haskell: an experimental comparison in security protocol analysis. In: Proc. 3rd. WRLA. ENTCS, Elsevier, Amsterdam (2000)
Berry, G., Boudol, G.: The chemical abstract machine. Theoretical Computer Science 96(1), 217–248 (1992)
Best, E., Devillers, R.: Sequential and concurrent behavior in Petri net theory. Theoretical Computer Science 55, 87–136 (1989)
Borovanský, P., Kirchner, C., Kirchner, H., Moreau, P.-E.: ELAN from a rewriting logic point of view. Theoretical Computer Science 285, 155–185 (2002)
Boudol, G.: Computational semantics of term rewriting systems. In: Algebraic Methods in Semantics, pp. 169–236. Cambridge University Press, Cambridge (1985)
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)
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)
Braga, C., Meseguer, J.: Modular rewriting semantics in practice. In: Proc. WRLA 2004. ENTCS (2004)
Brat, G., Havelund, K., Park, S., Visser, W.: Model checking programs. In: ASE 2000, pp. 3–12 (2000)
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)
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
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)
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
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)
Clarke, E., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (2001)
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)
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
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
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)
Degano, P., Gadducci, F., Priami, C.: A causal semantics for CCS via rewriting logic. Theoretical Computer Science 275(1-2), 259–282 (2002)
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)
Eker, S., Meseguer, J., Sridharanarayanan, A.: The Maude LTL model checker. In: Proc. 4th. WRLA. ENTCS, Elsevier, Amsterdam (2002)
Farzan, A., Chen, F., Meseguer, J., Roşu, G.: JavaFAN, http://fsl.cs.uiuc.edu/javafan
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)
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)
Futatsugi, K., Diaconescu, R.: Cafe OBJ Report. AMAST Series. World Scientific, Singapore (1998)
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)
Goguen, J.A., Malcolm, G.: Algebraic Semantics of Imperative Programs. MIT Press, Cambridge (1996)
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)
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)
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)
Havelund, K., Pressburger, T.: Model checking Java programs using Java PathFinder. Software Tools for Technology Transfer 2(4), 366–381 (2000)
Hennessy, M.: The Semantics of Programming Languages: An Elementary Introduction Using Structural Operational Semantics. John Willey & Sons, West Sussex (1990)
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)
Jacobs, B., Poll, E.: Java program verification at Nijmegen: Developments and perspective. Technical Report NIII-R0318, Computing Science Institute, University of Nijmegen (2000)
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)
Laneve, C., Montanari, U.: Axiomatizing permutation equivalence. Mathematical Structures in Computer Science 6, 219–249 (1996)
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)
Meseguer, J.: Conditional rewriting logic as a unified model of concurrency. Theoretical Computer Science 96(1), 73–155 (1992)
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)
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)
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)
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)
Meseguer, J.: Lecture notes on program verification. CS 376. University of Illinois (Fall 2003) http://www-courses.cs.uiuc.edu/~cs376/
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)
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)
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)
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)
Milner, R.: Functions as processes. Mathematical Structures in Computer Science 2(2), 119–141 (1992)
Moore, J.: Inductive assertions and operational semantics. In: Geist, D., Tronci, E. (eds.) CHARME 2003. LNCS, vol. 2860, pp. 289–303. Springer, Heidelberg (2003)
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)
Moore, J.S.: http://www.cs.utexas.edu/users/xli/prob/p4/p4.html
Mosses, P.D.: Modular structural operational semantics, to appear in J. Logic and Algebraic Programming (September 2003) (manuscript)
Mosses, P.D.: Denotational semantics. In: Handbook of Theoretical Computer Science, vol. B, North-Holland, Amsterdam (1990)
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)
Mosses, P.D.: Pragmatics of modular SOS. In: Kirchner, H., Ringeissen, C. (eds.) AMAST 2002. LNCS, vol. 2422, pp. 21–40. Springer, Heidelberg (2002)
Ö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
Ölveczky, P.C., Meseguer, J.: Specification of real-time and hybrid systems in rewriting logic. Theoretical Computer Science 285, 359–405 (2002)
Park, D.Y.W., Stern, U., Sakkebaek, J.U., Dill, D.L.: Java model checking. In: ASE 2001, pp. 253–256 (2000)
Plotkin, G.D.: A structural approach to operational semantics. Technical Report DAIMI FN-19, Computer Science Dept., Aarhus University (1981)
Reynolds, J.C.: The discoveries of continuations. LISP and Symbolic Computation 6(3-4), 233–247 (1993)
Roşu, G.: Lecture notes on program language design. CS 322, University of Illinois at Urbana-Champaign (Fall 2003)
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)
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)
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)
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)
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)
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)
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/
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)
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)
Stehr, M.-O., Talcott, C.: Plan in Maude: Specifying an active network programming language. In: Proc. 4th. WRLA. ENTCS, Elsevier, Amsterdam (2002)
Strachey, C.: Fundamental concepts in programming languages. Higher-Order and Symbolic Computation 13, 11–49 (2000)
Talcott, C.L.: Interaction semantics for components of distributed systems. In: Proceedings of FMOODS 1996, pp. 154–169. Chapman & Hall, Boca Raton (1997)
Talcott, C.L.: Actor theories in rewriting logic. Theoretical Computer Science 285 (2002)
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)
Turi, D.: Functorial Operational Semantics and its Denotational Dual. PhD thesis, Free University, Amsterdam (1996)
Verdejo, A.: Maude como marco semántico ejecutable. PhD thesis, Facultad de Informática, Universidad Complutense, Madrid, Spain (2003)
Verdejo, A., Martí-Oliet, N.: Executable structural operational semantics in Maude. Dto. Sistemas Informáticos y Programación, Universidad Complutense, Madrid (August 2003) (manuscript)
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)
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)
Verdejo, A., Martí-Oliet, N.: Implementing CCS in Maude 2. In: Proc. 4th. WRLA. ENTCS, Elsevier, Amsterdam (2002)
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
Viry, P.: Elimination of conditions. Journal of Symbolic Computation 28(3), 381–401 (1999)
Viry, P.: Equational rules for rewriting logic. Theoretical Computer Science 285, 487–517 (2002)
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)
Wand, M.: First-order identities as a defining language. Acta Informatica 14, 337–357 (1980)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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