On compilation of Maude specifications.

Massimo Dentico m.dentico@virgilio.it
Wed Jun 11 11:51:02 2003


Apparently, looking through Maude sources and documentation, Alexis Read
was  right  wrt  the  existence of  an  experimental  compiler  of Maude
specifications but via a C/C++  compiler, not directly to machine  code.
Evidence of this in the source is, for example, this file:

  Maude2.0/FullCompiler/compilationContext.cc
  
Also mentioned in the Maude 2.0 Manual - v. 1.0. An excerpt from p. 8:

  - http://maude.cs.uiuc.edu/manual/

--------------------------------------------------------------------------
  1.1.3 Performance
  
  [..]
  
  These figures must be qualified by the observation that, until recently,
  the cost  of an  associative or  associative-commutative rewriting  step
  depended polynomially  on the  size of  the subject  term, even with the
  most efficient  algorithms. In  practice this  meant that  this kind  of
  rewriting was not practical for  large applications, in which the  lists
  or  multisets to  be rewritten  would have  millions of  elements.  This
  situation has been drastically altered by a recent result of Steven Eker
  [28]   providing  new   algorithms  for   associative  and   associative
  -commutative  rewriting  that,  for  patterns  typically  encountered in
  practice,  can perform  one step  of associative  rewriting in  constant
  time,   and   one  associative-commutative   rewriting   step  in   time
  proportional to  the logarithm  of the  subject term's  size. Maude  2.0
  supports equational rewriting with these new algorithms. The reason  why
  the  Maude interpreter  achieves high  performance is  that the  rewrite
  rules are carefully  analyzed and are  then semicompiled into  efficient
  matching  and   replacement  automata   [27]  with   efficient  matching
  algorithms. One  important advantage  of semicompilation  is that  it is
  possible to trace  every single rewriting  step. More performance  is of
  course possible by full compilation. Maude has an experimental  compiler
  for a  subset of  the language  which can  typically achieve  a fivefold
  speedup over the interpreter.
  
  [..]
--------------------------------------------------------------------------


Bibliographic references in the excerpt:

--------------------------------------------------------------------------
  [27] Steven Eker.  Fast matching  in combination  of regular  equational
       theories. In  J. Meseguer,  editor, Proc.  First Intl.  Workshop on
       Rewriting Logic and its Applications, volume 4 of Electronic  Notes
       in Theoretical Computer Science. Elsevier, 1996.
  
    - http://maude.cs.uiuc.edu/papers/abstract/tcs4007.html
  
  [28] Steven Eker. Associative-commutative  rewriting on large  terms. In
       Rewriting Techniques  and Applications  (RTA'03), Lecture  Notes in
       Computer Science, to appear. Springer-Verlag, 2003.
  
    - http://www.dsic.upv.es/~rdp03/rta/abstracts.html#rta13
--------------------------------------------------------------------------

I think that [28] will  never be available on-line because  of copyright
restrictions, so we need to wait until a technical report or  equivalent
will be written.

>From what I understand [27] explain the compilation from rewriting rules
(simplified  with the  technique in  [28]?) to  Binary Decision  Diagram
(BDD).

Unfortunately right now I'm  quite busy with a  job and I have  not much
time to  devote to  Maude. If  someonelse is  examining Maude source and
docs I will be glad to hear his discoveries.

Best regards.

--
Massimo Dentico