scieee Open visual document viewer

Maude as a Metalanguage

Clavel, M.; Durán, F.; Eker, S.; Lincoln, P.; Martí Oliet, N.; Meseguer, J.; Quesada Moreno, José Francisco

Abstract

One of the key goals of rewriting logic from its beginning has been to provide a semantic and logical framework in which many models of computation and languages can be naturally represented. There is by now very extensive evidence supporting the claim that rewriting logic is indeed a very flexible and simple logical and semantic framework. From a language design point of view the obvious question to ask is: how can a rewriting logic language best support logical and semantic framework applications, so that it becomes a metalanguage in which a very wide variety of logics and languages can be both semantically defined, and implemented? Our answer is: by being reflective. This paper discusses our latest language design and implementation work on Maude as a reflective metalanguage in which entire environments---including syntax definition, parsing, pretty printing, execution, and input/output---can be defined for a language or logic £ of choice.

Full text

                                !                     !"#$ $ " %" $$ # $$    & $ %" %'(" $ $#"%')                    * "  +" ,                                                                        +#+                "  $($  $ !       -"              "        #  $     %#   $      Ä                                                                                                          ½          !"  #Æ $ %&'  %!(!!("   %'   ) *                                               ! "#$%& ' Æ     !     (                                                   (      )       !                    *   (     +                ,           ,       -      .        ,     *     (            Æ    /      ,        ,  $  !              0               ! 1                     (                       (  2       +    3       4              !                           .      .55                                  "##&               (        67     67    67       )     (    $        *          67         )         *               8 *    6 7        67                                8       9*  :                                         3              /                                              (     +!    /      9        (      / :                 67          .55                   ! ! "            .;   "0#& ' .;             1          .;         .1< 1      .;   "0=&     .1   >   <?       "$@&              )               Æ        # $ "% &              -       Æ       A       /     0               (     !                  3   )            B==CB4=C       $%C###C 2.        90==A3 ;D:  (  2.          2.  92.   8;:   3   2.  )                9   2.  :  )     -  !                     )          )          -                !  "#$%&         (     Í      (     /                                  (                    -             9:  (       -       E ¯      (          F ¯       (           F ¯                  (           (    F ¯                )   (     F ¯              /    (     F ¯                               (                                * (       A  Æ            4                 (                    -    6! 7        !    2                  "B& 8                                           9 :  ( +    1    E ¯ .   "#0%&   (                  9:         F ¯ GH   "#I&    / 3      .  J'K  "I#%&   3               3            (      F  ¯ / 9:       (              (         /  9  4#  4$:                    3                          .55 9 .     $:                      (                3             Æ                    J                   &'       ,     ,      '                              &' "$=&                 >?28 ;                      I      !     "$#$0$44&     "$=#B04#@00$D#4%#=&   )                    "0I$I00$%$B&                             LE   ()  1        *   E                              (                   %  M J  E    !  (   (                  * +    L   * (  LE              (      ,             9  0: -        '   "$&     L     (      (   .    * N             L9  :                     "%&       "#I&                    -            %  &                                    (     /   +            1            ,        ( ,    *,              (                    #  - -               (        (                                         D             (         9 (:   9   (:                                                     ( ,      ,              E      %        (                !      (           (       .     E         !      !   "     #    8                   -                      2    9   (    : (         !              $%  (        E  $%   & &'   % ( %   ")#)   ! %   ))  % ! &    ) )   ! &'   8                                     ( F          *                &  $%       !        &      -     &           (                1      (    %               44     (      # !  ! ! 2              !      9    ½   :       (  ½              F         ½           F    *               Æ           (  1     &             & ! +  <  &     (    ¼                 *F       &      ¼¼                     9  ¼  : -           +                             !   -                 -     (             #  ",                 (            (  -         3                    , -                 Ä              , Ä                          (            -                            2    B                              !           ,                                 !         LE               '    9 :                   ,            (                .   !          '         3       %        3  F          )   2           "#I& -         !            ## .%/$% N  )          +    --&                   3          ./-  +  )         E               ,       .    (      &  &'             %   %      (                3  1                                                  --&   %    )E    ./-       ,                  1        %     )      (       (     (      *   @