The Extensibility of Maude’s Module Algebra
The reflective capabilities of rewriting logic and their efficient implementation in the Maude language can be exploited to endow a reflective language like Maude with a module algebra in which structured modules can be combined and transformed by means of a rich collection of module operations. We have followed this approach to use the specification of such a module algebra as its implementation, including a user interface and an execution environment for it. The high level at which the specification of the module algebra has been given makes this approach particularly attractive when compared to conventional implementations, because of its shorter development time and the greater flexibility, maintainability, and extensibility that it affords. We explain the general principles of the reflective design of the module algebra, focusing in its extensibility, and illustrate some of the possibilities for defining new module operations.
KeywordsModule Operation Parameterized Module Module Expression Execution Environment Module List
Unable to display preview. Download preview PDF.
- 1.D. Basin, M. Clavel, and J. Meseguer. Reflective metalogical frameworks. In Proc. of Workshop on Logical Frameworks and Meta-languages, 1999. Available at http://www.cs.bell-labs.com/~felty/LFM99/.
- 2.R. Burstall and J. Goguen. The semantics of Clear, a specification language. In D. Bjørner, ed., Proc. of 1979 Copenhagen Winter School on Abstract Software Specification, vol. 86 of Lecture Notes in Computer Science, pp. 292–332. Springer-Verlag, 1980.Google Scholar
- 3.M. Clavel, F. Durán, S. Eker, P. Lincoln, N. Martí-Oliet, J. Meseguer, and J. Quesada. Maude: Specification and programming in rewriting logic. Manuscript, SRI International, January 1999. Available at http://maude.csl.sri.com.
- 4.M. Clavel, F. Durán, S. Eker, and J. Meseguer. Building equational logic tools by reflection in rewriting logic. In Proc. of CafeOBJ Symposium’98. CafeOBJ Project, 1998.Google Scholar
- 5.M. Clavel, F. Durán, S. Eker, J. Meseguer, and M.-O. Stehr. Maude as a formal meta-tool. In J. Wing, J. Woodcock, and J. Davies, eds., Formal Methods (Vol. II), vol. 1709 of Lecture Notes in Computer Science, pp. 1684–1704. Springer-Verlag, 1999.Google Scholar
- 6.M. Clavel and J. Meseguer. Axiomatizing reflective logics and languages. In G. Kiczales, ed., Proc. of Reflection’96, pp. 263–288, 1996.Google Scholar
- 7.M. Clavel and J. Meseguer. Reflection and strategies in rewriting logic. In J. Meseguer, ed., Proc. of Workshop on Rewriting Logic and its Applications, vol. 4 of Electronic Notes in Theoretical Computer Science. Elsevier, 1996. Available at http://www.elsevier.nl/locate/entcs/volume4.html.
- 8.CoFI Task Group on Language Design. CASL—The common algebraic specification language, v. 1.0. Available at http://www.brics.dk/Projects/CoFI, 1998.
- 9.R. Diaconescu and K. Futatsugi. CafeOBJ Report. AMAST Series. World Scientific, 1998.Google Scholar
- 10.R. Diaconescu, J. Goguen, and P. Stefaneas. Logical support for modularisation. In G. Huet, G. Plotkin, and C. Jones, eds., Proc. of Workshop on Logical Frameworks, pp. 83–130. Cambridge University Press, 1991.Google Scholar
- 11.F. Durán. A Reflective Module Algebra with Applications to the Maude Language. PhD thesis, Universidad de Málaga, June 1999.Google Scholar
- 12.F. Durán and J. Meseguer. An extensible module algebra for Maude. In Kirchner and Kirchner, eds., Proc. of Workshop on Rewriting Logic and its Applications, vol. 15 of Electronic Notes in Theoretical Computer Science. Elsevier, 1998. Available at http://www.elsevier.nl/locate/entcs/volume15.html.
- 13.F. Durán and J. Meseguer. Structured theories and institutions. In M. Hofmann, G. Rosolini, and D. Pavlović, eds., Proc. of Conference on Category Theory and Computer Science, vol. 29 of Electronic Notes in Theoretical Computer Science, pp. 71–90. Elsevier, 1999. Available at http://www.elsevier.nl/locate/entcs/-volume29.html.
- 14.F. Durán and J. Meseguer. Structured theories and Maude’s module algebra. In Proc. of Workshop on Algebraic Development Techniques (WADT’99), 1999.Google Scholar
- 15.H. Ehrig and B. Mahr. Fundamentals of Algebraic Specification 1. Equations and Initial Semantics. Springer-Verlag, 1985.Google Scholar
- 16.K. Futatsugi and T. Sawada. Cafe as an extensible specification environment. In Proc. of the Kunming International CASE Symposium, 1994.Google Scholar
- 17.J. Goguen. Higher-order functions considered unnecessary for higher order programming. In D. Turner, ed., Proc. of University of Texas Year of Programming, Institute on Declarative Programming. Addison-Wesley, 1988.Google Scholar
- 18.J. Goguen, T. Winkler, J. Meseguer, K. Futatsugi, and J.-P. Jouannaud. Introducing OBJ. Technical Report SRI-CSL-92-03, Computer Science Laboratory, SRI International, March 1992.Google Scholar
- 19.J. Guttag and J. Horning, eds. Larch: Languages and Tools for Formal Specification. Texts and Monographs in Computer Science. Springer-Verlag, 1993.Google Scholar
- 20.N. Martí-Oliet and J. Meseguer. Rewriting logic as a logical and semantic framework. To appear in D.M. Gabbay, ed., Handbook of Philosophical Logic, Kluwer Academic Publishers. Short version in J. Meseguer, ed., Proc. of Workshop on Rewriting Logic and its Applications, vol. 4 of Electronic Notes in Theoretical Computer Science. Elsevier, 1996. Available at http://www.elsevier.nl/locate/-entcs/volume4.html.
- 22.J. Meseguer. A logical theory of concurrent objects and its realization in the Maude language. In G. Agha, P. Wegner, and A. Yonezawa, eds., Research Directions in Object-Based Concurrency, pp. 314–390. The MIT Press, 1993.Google Scholar
- 23.J. Meseguer. Membership algebra as a semantic framework for equational specification. In F. Parisi-Presicce, ed., Recent Trends in Algebraic Development Techniques (WADT’97), vol. 1376 of Lecture Notes in Computer Science, pp. 18–61. Springer-Verlag, 1998.Google Scholar
- 24.Y. Srinivas and R. Jüllig. SPECWARE: Formal support for composing software. In B. Moeller, ed., Proc. of Conference on Mathematics of Program Construction, vol. 947 of Lecture Notes in Computer Science, pp. 399–422. Springer-Verlag, 1995.Google Scholar