• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Talents Presentation at ESUG 2011
 

Talents Presentation at ESUG 2011

on

  • 793 views

 

Statistics

Views

Total Views
793
Views on SlideShare
406
Embed Views
387

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 387

http://scg.unibe.ch 387

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • Since My Rectangle is a composition, I cannot access the behavior in MColor or MBorder exclusively.\nMixins have to be applied one at a time.\n
  • \n\n
  • Since My Rectangle is a composition, I cannot access the behavior in MColor or MBorder exclusively.\nMixins have to be applied one at a time.\n
  • \n
  • Since My Rectangle is a composition, I cannot access the behavior in MColor or MBorder exclusively.\nMixins have to be applied one at a time.\n
  • Originally in self\nthen developed by nathanel scharli in smalltalk.\nWith operations\n\n
  • Self traits do not provide composition operators.\n
  • Originally in self\nthen developed by nathanel scharli in smalltalk.\nWith operations\n\n
  • Originally in self\nthen developed by nathanel scharli in smalltalk.\nWith operations\n\n
  • \n
  • that it is a cool, large and open source platform for data and software analysis that is being increasingly used in industrial projects\n
  • Class oriented. Fixed on classes.\nClass explosion. \nGet the example from simon.\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Another example will be the Simon one.\nTypically for a graph algorithm you have a graph structure which is built from Famix entities, yet nodes and edges require specific behavior and state to preserve algorithmic complexity.\nRight now we do some model transformations, that is we create the graph structure from the Famix model to run the algorithm with, then we can reflect on the graph or inject the result back into the Famix entities if necessary. But we need to create this disposable graph structure anyway.\nI always thought it would be much cooler to add behavior and state for graph computation directly into the Famix entities, run the algorithm, get the results, then remove such state and behavior from entities to preserve space. Especially this last point was not apparent in the Moose JEE example.\n
  • \n
  • \n
  • \n
  • We see that there are many different ways of doing reflection, adaptation, instrumentation, many are low level.\nAnd the ones that are highly flexible cannot break free from the limitations of the language.\n
  • Adaptation semantic abstraction for composing meta-level structure and behavior.\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Talents Presentation at ESUG 2011 Talents Presentation at ESUG 2011 Presentation Transcript

  • Talents:Dynamically Composable Units of ReuseJorge Ressia, Tudor Gîrba, Oscar Nierstrasz, Fabrizio Perin and Lukas Renggli www.scg.unibe.ch
  • Reuse
  • Mixins
  • Linear Composition
  • Single Composition
  • Traits
  • Class = Superclass + State + Traits + Glue methods
  • Flatten Composition
  • MultipleComposition
  • Problem
  • moosetechnology.org
  • MooseEntity FAMIXEntity ... FAMIXTypeaFAMIXClass isTestClass 2 FAMIXClass Key instance-of isTestClass 1 message send lookup aFAMIXClass self inheritsFrom: TestCase 3
  • What about objects?
  • Talents
  • MooseEntity FAMIXEntity ... 3 aJeeClassTalent FAMIXType talent isTestClass aJeeClassTalent FAMIXClassaFAMIXClass 2 inheritsFrom: TestCase 4 aFAMIXClass Key instance-of 1 message send lookup aFAMIXClass acquire isTestClass
  • Operations
  • Define a method
  • jeeClassTalent defineMethodNamed: #isTestClass performing: ^ self inheritsFrom: #TestCase.
  • Exclude a method
  • jeeClassTalent excludeMethodNamed: #isTestClass
  • Replace a method
  • jeeClassTalent replaceMethodNamed: #isTestClass performing: ^ self inheritsFrom: #TestCase.
  • Composition Operators
  • Composition
  • aClass := FAMIXClass new.aClass acquire: ( javaClassTalent , jeeClassTalent ).
  • Alias
  • aClass := FAMIXClass new.aClass acquire: javaClassTalent , ( jeeClassTalent @ {#isTestClass -> #isJEETestClass})
  • Exclusion
  • aClass := FAMIXClass new.aClass acquire: javaClassTalent , (jeeClassTalent - #isTestClass).
  • Implementation
  • Reflection
  • scg.unibe.ch/research/ bifrost
  • Organize the Meta-level
  • ExplicitMeta-objects
  • Class TalentObject
  • Class TalentObject
  • Class TalentTalented Object
  • Flattening
  • Scoping
  • Talentsscg.unibe.ch/research/talents