Slide 1

Slide 1 text

Generic Name Resolution with Metamodels Yuriy Tymchuk, Benjamin Arezki, Anne Etien, Nicolas Anquetil and Stéphane Ducasse

Slide 2

Slide 2 text

Software Assessment Development Assessment

Slide 3

Slide 3 text

Software Assessment

Slide 4

Slide 4 text

Modelling source code #middleOf:and: b a sum ^st st := sum + a b / sum 2 middleOf: a and: b | sum | sum := a + b. ^ sum / 2

Slide 5

Slide 5 text

Resolving symbols #middleOf:and: b a sum ^st st := sum + a b / sum 2 a b sum

Slide 6

Slide 6 text

Moose Toolchain www.moosetechnology.org

Slide 7

Slide 7 text

FAMIX Metamodel                                 !           "#    # # FAMIX

Slide 8

Slide 8 text

Core metamodel                         !"#$    %!"#$    %&!"#$       %   %&  !"#$                   !'       !'  &       #      $           $        ( % )  *"  )  #$+,   )  #$   ! )  #$!

Slide 9

Slide 9 text

Smalltalk metamodel                                                          !  "              #        #                     $ !                  %&'  $%(   !    $ )  $ "(  )  *+   )     !)  *+  !)  %! !)          %          % )  % , ' )              %       %       

Slide 10

Slide 10 text

Java (sub)Metamodel                                                                                                                              !      " #$%&'    (  &'    (  &'   #$%     (      (        &'      !      &'           &'         "     "    &    ! '  !          )               *     +     $(         #$% '    ,  &'   - ,  &' ./   ,  &'   $ !,  &' $ !  ',    !,  &'  !  0 '              -           - '     $( .     !  ( .  ! .  $ (    !  # $&   !'   &  "+      "+     #$% 

Slide 11

Slide 11 text

Resolving a symbol ⚜

Slide 12

Slide 12 text

Lookup Symbol Method scope Class scope Superclass scope Package scope

Slide 13

Slide 13 text

Select Symbol private? public? protected?

Slide 14

Slide 14 text

Case studies Pharo (smalltalk) Java (subset) Cobol

Slide 15

Slide 15 text

No content