Rewriting logic (Meseguer, 1992) is proposed as a logical framework in which other logics can be represented, and as a semantic framework for the specification of languages and systems. Using concepts from the theory of general logics (Meseguer 1989),representations of an object logic \cal L in a framework logic \cal F are understood as mappings \cal L \rightarrow \cal F that translate one logic into the other in a conservative way. The ease with which such maps can be defined is discussed in detail for the cases of linear logic, logics with quantifiers, and any sequent calculus presentation of a logic for a very general notion of ``sequent.'' Using the fact that rewriting logic is reflective, it is often possible to reify inside rewriting logic itself a representation map \cal L \rightarrow RWLogic for the finitely presentable theories of \cal L. Such a reification takes the form of a map between the abstract data types representing the finitary theories of \cal L and of RWLogic.
Regarding the different but related use of rewriting logic as a semantic framework, the straightforward way in which very diverse models of concurrency can be expressed and unified within rewriting logic is illustrated with CCS. In addition, the way in which constraint solving fits within the rewriting logic framework is briefly explained.
(BibTeX entry) (gzip'ed Postscript)