Successfully reported this slideshow.
Your SlideShare is downloading. ×

Lub: a DSL for Dynamic Context Oriented Programming

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Lub
A language for Dynamic Context
Oriented Programming
Steven Costiou
Mickaël Kerboeuf, Glenn Cavarlé, Alain Plantec
UMR ...
Drone 1 + GPS
Drone 2 + GPS
Target
Drone 2 NO GPS
GPS loss
Drone 1 + GPS

YouTube videos are no longer supported on SlideShare

View original on YouTube

Loading in …3
×

Check these out next

1 of 44 Ad
Advertisement

More Related Content

Viewers also liked (13)

More from ESUG (20)

Advertisement

Recently uploaded (20)

Lub: a DSL for Dynamic Context Oriented Programming

  1. 1. Lub A language for Dynamic Context Oriented Programming Steven Costiou Mickaël Kerboeuf, Glenn Cavarlé, Alain Plantec UMR CNRS 6285, Lab-STICC/MOCS Université de Bretagne Occidentale
  2. 2. Drone 1 + GPS Drone 2 + GPS Target
  3. 3. Drone 2 NO GPS GPS loss Drone 1 + GPS
  4. 4. Unanticipated
  5. 5. Unanticipated = Not foreseen at design time
  6. 6. Unanticipated = Not foreseen at design time = The behavior we need was not expected
  7. 7. ▪ Schéma 4 : Adaptation proposition GPS sharing Drone 1 + GPS Drone 2 NO GPS
  8. 8. Unanticipated behavior adaptation at runtime
  9. 9. Minimal anticipation
  10. 10. Minimal anticipation = Anticipate the need to face unanticipated adaptation
  11. 11. Minimal anticipation = Anticipate the need to face unanticipated adaptation = Build Support (frameworks)
  12. 12. Dynamic context oriented programming (COP)
  13. 13. What we adapt: Objects
  14. 14. ● Instance based adaptation ● Adapted object preserve their identity
  15. 15. How do we adapt ?
  16. 16. ● Free adaptation strategy ● Easy and controlled behavior selection
  17. 17. LUB An extension of Pharo
  18. 18. Behavior adaptation through dynamic lookup control
  19. 19. #pinPoint
  20. 20. Lookup base #pinPoint
  21. 21. Lookup starts in the object’s lookup base Lookup #pinPoint
  22. 22. New lookup base
  23. 23. lub := LookupBase named: ‘PeerTrackerLookupBase’ targetClass: PeerPositionTracker
  24. 24. bind
  25. 25. positionTracker lookupBase: lub. positionTracker pinPoint lub := LookupBase named: ‘PeerTrackerLookupBase’ targetClass: PeerPositionTracker
  26. 26. #pinPoint
  27. 27. #pinPoint
  28. 28. does-not-understand #pinPoint
  29. 29. does-not-understand #pinPoint
  30. 30. Selection of the behavior to adapt ?
  31. 31. lub := LookupBase named: ‘PeerTrackerLookupBase’ targetClass: PeerPositionTracker with: #(#pinPoint). positionTracker lookupBase: lub. positionTracker pinPoint. positionTracker position.
  32. 32. #pinPoint
  33. 33. #position
  34. 34. ● Instance based adaptation ● Adapted object preserve their identity Binding an object to a meta object that controls the lookup ● Free adaptation strategy ● Easy and controlled behavior selection
  35. 35. Issues ?
  36. 36. States consistency with an adaptation ?
  37. 37. pinpoint ^peerTracker pinPoint
  38. 38. Validation and consistency of the adapted behavior ?
  39. 39. Experiments on a physical device ?
  40. 40. Lub A language for Dynamic Context Oriented Programming Steven Costiou Mickaël Kerboeuf, Glenn Cavarlé, Alain Plantec UMR CNRS 6285, Lab-STICC/MOCS Université de Bretagne Occidentale

×