Upgrade to Pro — share decks privately, control downloads, hide ads and more …

FAST Resolution (benevol13)

Yuriy Tymchuk
December 17, 2013

FAST Resolution (benevol13)

Presentation of FAST generic symbol resolution at BENEVOL 2013 workshop

Yuriy Tymchuk

December 17, 2013
Tweet

More Decks by Yuriy Tymchuk

Other Decks in Research

Transcript

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

    View Slide

  2. Software Assessment
    Development
    Assessment

    View Slide

  3. Software Assessment

    View Slide

  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

    View Slide

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

    View Slide

  6. Moose Toolchain
    www.moosetechnology.org

    View Slide

  7. FAMIX Metamodel



















    !



    "#

    #
    #
    FAMIX

    View Slide

  8. Core metamodel















    !"#$


    %!"#$

    %&!"#$


    %

    %&
    !"#$









    !'





    !' &





    #


    $





    $




    ( % ) *")
    #$+,
    )
    #$
    ! )
    #$!

    View Slide

  9. Smalltalk metamodel


































    ! "









    #






    #













    $ !











    %&'
    $%( !

    $)
    $
    "()
    *+
    )

    !)
    *+
    !) %!!)




    %





    % )
    %
    , ' )









    %





    %





    View Slide

  10. Java (sub)Metamodel





































































    !



    "
    #$%&'

    ( &'

    (&'
    #$%

    (

    (

    &'

    !



    &'




    &'



    "

    "

    &


    ! ' !





    )







    *


    +


    $(




    #$%
    '

    ,
    &'

    - ,
    &' ./

    ,
    &'

    $ !,
    &' $ !

    ',

    !,
    &'
    !

    0 '






    -




    - '


    $(.

    !

    ( .

    ! .

    $ (

    !

    # $&
    !'
    &

    "+

    "+


    #$%

    View Slide

  11. Resolving a symbol

    View Slide

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

    View Slide

  13. Select
    Symbol
    private?
    public?
    protected?

    View Slide

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

    View Slide

  15. View Slide