FAST Resolution (benevol13)

9847702de1f7f19db8c3e158325baa8e?s=47 Yuriy Tymchuk
December 17, 2013

FAST Resolution (benevol13)

Presentation of FAST generic symbol resolution at BENEVOL 2013 workshop

9847702de1f7f19db8c3e158325baa8e?s=128

Yuriy Tymchuk

December 17, 2013
Tweet

Transcript

  1. Generic Name Resolution with Metamodels Yuriy Tymchuk, Benjamin Arezki, Anne

    Etien, Nicolas Anquetil and Stéphane Ducasse
  2. Software Assessment Development Assessment

  3. Software Assessment

  4. 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
  5. Resolving symbols #middleOf:and: b a sum ^st st := sum

    + a b / sum 2 a b sum
  6. Moose Toolchain www.moosetechnology.org

  7. FAMIX Metamodel        

                            !           "#    # # FAMIX
  8. Core metamodel        

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

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

                                                                                                                         !      " #$%&'    (  &'    (  &'   #$%     (      (        &'      !      &'           &'         "     "    &    ! '  !          )               *     +     $(         #$% '    ,  &'   - ,  &' ./   ,  &'   $ !,  &' $ !  ',    !,  &'  !  0 '              -           - '     $( .     !  ( .  ! .  $ (    !  # $&   !'   &  "+      "+     #$% 
  11. Resolving a symbol ⚜

  12. Lookup Symbol Method scope Class scope Superclass scope Package scope

  13. Select Symbol private? public? protected?

  14. Case studies Pharo (smalltalk) Java (subset) Cobol

  15. None