Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PHP.next: Traits

6,524 views

Published on

This slide deck was use for a presentation for AFUP (France) in Paris. It discusses the motivation for traits, the problems of alternative approaches, and the language design of traits for php. A small case study, and a discussion of the implementation details in the Zend Engine are included, too.

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ❶❶❶ http://bit.ly/2Qu6Caa ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ❤❤❤ http://bit.ly/2Qu6Caa ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

PHP.next: Traits

  1. 1. PHP.next:  Traits  Horizontal  Reuse  of  Behavior   Stefan  Marr   AFUP,  La  Can@ne,  Paris   15th  December  2010  
  2. 2. Ques@ons  at  any  @me  
  3. 3. Traits  for  PHP  Started  December  2007  15/12/10   3  
  4. 4. Today:  Virtual  Machines  for  the  Manycore  Era   hOp://soR.vub.ac.be/~smarr/research/   hOp://github.com/smarr/RoarVM  15/12/10   4  
  5. 5. Who  are  you?  •  PHP  Programmer:  Job  or  Hobby?  •  C  Programmer?  (PHP  core/extensions?)  •  Contribu@on  to  Open  Source  projects?  15/12/10   5  
  6. 6. Off-­‐Topic…   Anyone  using:   •  COCOMO,  COCOMO  II   •  Func@on  points   •  User  Story  Points  15/12/10   6  
  7. 7. Ques@ons  at  any  @me  
  8. 8. Agenda  •  Why  Traits?  •  The  Language  Design  •  Traits  Applied  •  Implementa@on  inside  the  Zend  Engine  15/12/10   8  
  9. 9. Reuse  in  Programming  Languages   WHY  TRAITS?  15/12/10   Stefan  Marr  –  PHP.next:  Traits   9  
  10. 10. Single  Inheritance   Vertebrates•  Simple  but  not     expressive  enough  •  Leads  to   Dinosaurs Mammal •  Code  duplica@on   •  Inappropriate     hierarchies   Archaeoptrix Bat fly() fly()15/12/10   Approaches  for  ComposiIon  and  their  Limits   10  
  11. 11. Mul@ple  Inheritance   Animal •  Very  expressive   +move() •  But   Bird Swimmer •  Diamond  problem   +move() +move() •  Fragile  hierarchies   +getLegs() Penguin class Penguin { function move() { +move() Swimmer::move(); } }15/12/10   Approaches  for  ComposiIon  and  their  Limits   11  
  12. 12. Mixins   Animal WingAnimal <<mixin>> (1) Bat <<mixin>> (1) bones = light extremity = wings Penguin move() <<mixin>> (2) SwimAnimal extremity = fins move()15/12/10   Approaches  for  ComposiIon  and  their  Limits   12  
  13. 13. Mixins   Animal WingAnimal <<mixin>> (1) Bat <<mixin>> (1) bones = light extremity = wings Penguin move() <<mixin>> (2) SwimAnimal extremity = fins •  Lack  of  composi@on   move() control   •  Fragile  hierarchies  15/12/10   Approaches  for  ComposiIon  and  their  Limits   13  
  14. 14. Limita@ons  •  Code  duplica@on  •  Inappropriate  hierarchies  •  Diamond  problem  •  Fragile  hierarchies  •  Lack  of  composi@on  control  15/12/10   Approaches  for  ComposiIon  and  their  Limits   14  
  15. 15. Traits  for  PHP   THE  LANGUAGE  DESIGN  15/12/10   Stefan  Marr  –  PHP.next:  Traits   15    
  16. 16. Traits  •  Set  of  methods  •  Possibly  composed  of  other  Traits  •  Composi@on  is  unordered   TFoo•  Composi@on  opera@ons   TTrait foo() TBar –  Sum   m1() m2() bar() MyClass –  Exclusion   TConflict –  Aliasing   m2()•  Can  be  flaOened  away  15/12/10   Traits   16  
  17. 17. Traits  in  Ac@on  15/12/10   Traits   17  
  18. 18. Method  in  Class  Overrides  Trait   Base   foo()   class  Base  {  Code      function  foo()  {  echo  B;}}   A   T     foo()   foo()   trait  T  {      function  foo()  {  echo  T;}}   Base    Compiled  Result   foo()   class  A  extends  Base  {      use  T;      function  foo()  {  echo  A;}}   A   foo()   echo  A;   15/12/10   Traits   18  
  19. 19. Conflicts  are  Explicit   Base   class  Base  {   foo()      function  foo()  {  echo  B;}}   T1    Code   foo()   trait  T1  {   A      function  foo()  {echo  T1;}}   T2     foo()   trait  T2  {   Base      function  foo()  {echo  T2;}}  Compiled  Result   foo()     class  A  extends  Base  {      use  T1,  T2;   A   >>  Fatal  error:     }        collision  on  foo   15/12/10   Traits   19    
  20. 20. Solving  Conflicts   Base   class  Base  {   foo()      function  foo()  {  echo  B;}}   T1   trait  T1  {  Code   foo()      function  foo()  {echo  T1;}}   A   trait  T2  {   T2      function  foo()  {echo  T2;}}   !foo   foo()     Base   class  A  extends  Base  {  Compiled  Result   foo()      use  T1,  T2  {          T1::foo  insteadof  T2;      }   A   }   foo()   >>  echo  T1;   15/12/10   Traits   20    
  21. 21. Aliasing   Base   class  Base  {   foo()      function  foo()  {  echo  B;}}   T1   trait  T1  {  Code   foo()      function  foo()  {echo  T1;}}   A   trait  T2  {   !foo   T2      function  foo()  {echo  T2;}}   +foo2   foo()     Base   class  A  extends  Base  {  Compiled  Result   foo()      use  T1,  T2  {          T1::foo  insteadof  T2;          T2::foo  as  fooT2;   A   foo()   >>  echo  T1;      }   foo2()   >>  echo  T2;   }   15/12/10   Traits   21    
  22. 22. Aliasing  IS  NOT  Renaming  trait  T1  {   class  A  {      function  bar()  {          echo  T1::bar;      use  T1,  T2  {      }          T2::bar  insteadof  T1;      function  foo()  {          T1::bar  as  bar2;          $this-­‐>bar();      }      }  }   }  trait  T2  {        function  bar()  {   $a  =  new  A;          echo  T2::bar’;      }   $a-­‐>foo();  //  echo  ??  }  15/12/10   Traits   22    
  23. 23. Late  Binding  for  Composability  trait  MovingAnimal  {   class  Penguin  {      function  move()  {      use  WingAnimal,  SwimAnimal  {          $this-­‐>extremities()-­‐>use();          WingAnimal::extremities      }}              insteadof  SwimAnimal;  trait  WingAnimal  {      }      use  MovingAnimal;   }      function  extremities()  {            return  $this-­‐>wings;   $skipper  =  new  Penguin;      }}   $skipper-­‐>move();  //  will  use  trait  SwimAnimal  {                                            his  wings      use  MovingAnimal;      function  extremities()  {          return  $this-­‐>fins;      }}   15/12/10   Traits   23    
  24. 24. Traits  and  State  trait  Counter  {      abstract  function  &getValueVar();      function  inc($inc  =  1)  {          $var  =  &$this-­‐>getValueVar();          $var  =  $var  +  $inc;      }}  class  PageWithCounter  {      use  Counter;      public  $counter  =  1;      function  &getValueVar()  {  return  $this-­‐>counter;  }  }  $page  =  new  PageWithCounter;  $page-­‐>inc();  var_dump($page-­‐>counter);   15/12/10   Traits   24    
  25. 25. Case  Studies  Illustra@ng  Benefits  of  Traits   TRAITS  APPLIED  15/12/10   Stefan  Marr  –  PHP.next:  Traits   25    
  26. 26. Use  Case  for  Traits  •  ezcReflec@on  enhances  PHP  Reflec@on  API   –  Adds  XDoclet  like  annota@ons  for  PHP   –  Enhances  type  hin@ng  using  PHPDoc  type   annota@ons  •  Illustrates  solu@on  for  code  duplica@on   problems   «interface» Reflector ReflectionProperty ReflectionClass ReflectionFunction ReflectionParameter ReflectionObject ReflectionMethod15/12/10   Traits  Applied   26  
  27. 27. Refactoring  ezcReflec@on  with  Traits  15/12/10   Traits  Applied   27  
  28. 28. Refactoring  ezcReflec@on  with  Traits  15/12/10   Traits  Applied   28  
  29. 29. Implementa@on  details:   Not  to  be  confused  with  language  seman@cs!   The  Traits  Implementa@on   INSIDE  THE  ZEND  ENGINE  15/12/10   Stefan  Marr  –  PHP.next:  Traits   29    
  30. 30. Zend  Engine  Overview   PHP  +  Zend  Engine   YACC   Opcodes   Script   Parser   Structures   Opcode   Interpreter   Result   Input   Input  15/12/10   Traits  inside  the  Zend  Engine   30  
  31. 31. YACC   Parser   Parser  •  Added  keywords   –  trait   –  insteadof  •  Grammar  rules  based  on  class    15/12/10   Traits  inside  the  Zend  Engine   31    
  32. 32. PHP  +  Zend   Engine   Zend  Engine  •  Trait  internally  a  class  with  ZEND_ACC_TRAIT   –  New  data  structures   •  zend_trait_method_reference   •  zend_trait_precedence   •  zend_trait_alias   –  Class  members  added  to  zend_class_entry   •  zend_class_entry  **traits;   •  zend_uint  num_traits;   •  zend_trait_alias  **trait_aliases;   •  zend_trait_precedence  **trait_precedences;  •  Support  in  Reflec@on  API  15/12/10   Traits  inside  the  Zend  Engine   32    
  33. 33. Opcode   Interpreter   Interpreter  •  Added  Opcodes   –  ZEND_ADD_TRAIT   •  similar  to  ZEND_ADD_INTERFACE   •  Only  adds  info,  no  composi@on  done   –  ZEND_BIND_TRAITS   •  emiOed  in  zend_do_end_class_declara@on   •  will  ini@ate  trait  composi@on  at  run@me   –  Only  once,  part  of  class  defini@on  process     –  (no  run@me  overhead)  15/12/10   Traits  inside  the  Zend  Engine   33    
  34. 34. PHP  +  Zend   Engine   Composi@on  Process  •  Implemented  in  zend_do_bind_traits  1.  Init  traits  data  structures  (resolve  classes)  2.  For  all  used  traits   –  Compile  method  table  of  all  used  methods   –  Respect  exclusion  and  aliases  3.  Merge  resul@ng  tables  4.  Add  methods  to  class   –  Handle  abstract  methods,  inheritance   –  duplicate  func@on  (like  copy/paste,  enables  static)  15/12/10   Traits  inside  the  Zend  Engine   34    
  35. 35. ROUNDUP  AND  CONCLUSION  15/12/10   Stefan  Marr  –  PHP.next:  Traits   35    
  36. 36. References  for  Traits  in  PHP  RFC:  Horizontal  Reuse  in  PHP   Version  2.0.1,  last  update  2010-­‐11-­‐18   hOp://wiki.php.net/rfc/horizontalreuse    Interes@ng  Blog  Posts   –  Simas  Toleikis:  Overview,  similar  to  RFC   •  hOp://simas.posterous.com/new-­‐to-­‐php-­‐54-­‐traits   –  Sebas@an  Deutsch:  Ac@veRecord  with  Traits   •  hOp://9elements.com/io/?p=28  15/12/10   Roundup  and  Conclusion   36    
  37. 37. Conclusion  •  Traits  are  mechanism  for  reuse  of  behavior  •  Avoid  limita@ons  of  other  approaches   –  Avoid  code  duplica@on   –  Enhance  class  composi@on  capabili@es  •  “Compiler  assisted  copy’n’paste”   –  FlaOened  into  class   –  No  run@me  overhead  15/12/10   Roundup  and  Conclusion   37    
  38. 38. Basic  Literature  on  Traits  Main  ArIcle  about  Traits    [3]  S.  DUCASSE,  O.  NIERSTRASZ,  N.  SCHÄRLI,  R.  WUYTS,  AND  A.  P.   BLACK,  Traits:  A  Mechanism  for  Fine-­‐Grained  Reuse,  ACM   Trans.  Program.  Lang.  Syst.,  28  (2006),  pp.  331–388.    Traits  Extensions  [1]  A.  BERGEL,  S.  DUCASSE,  O.  NIERSTRASZ,  AND  R.  WUYTS,  Stateful  Traits  and  their   Formaliza;on,  Journal  of  Computer  Languages,  Systems  and  Structures,  34   (2007),  pp.  83–108.  [4]  S.  DUCASSE,  R.  WUYTS,  A.  BERGEL,  AND  O.  NIERSTRASZ,  User-­‐Changeable  Visibility:   Resolving  Unan;cipated  Name  Clashes  in  Traits,  SIGPLAN  Not.,  42  (2007),   pp.  171–190.      15/12/10   Roundup  and  Conclusion     38  
  39. 39. Traits  Literature  [1]A.  BERGEL,  S.  DUCASSE,  O.  NIERSTRASZ,  AND  R.  WUYTS,  Stateful  Traits  and  their     Formaliza;on,  Journal  of  Computer  Languages,  Systems  and  Structures,  34  (2007),   pp.  83–108.  [2]S.  DENIER,  Traits  Programming  with  AspectJ,  RSTI  -­‐  Lobjet,  11  (2005),  pp.  69–86.    [3]S.  DUCASSE,  O.  NIERSTRASZ,  N.  SCHÄRLI,  R.  WUYTS,  AND  A.  P.  BLACK,  Traits:  A  Mechanism     for  Fine-­‐Grained  Reuse,  ACM  Trans.  Program.  Lang.  Syst.,  28  (2006),  pp.  331–388.  [4]S.  DUCASSE,  R.  WUYTS,  A.  BERGEL,  AND  O.  NIERSTRASZ,  User-­‐Changeable  Visibility:     Resolving  Unan;cipated  Name  Clashes  in  Traits,  SIGPLAN  Not.,  42  (2007),  pp.  171– 190.  [5]S.  MARR  AND  F.  MENGE,  ezcReflec;on,  SVN  Repository,  eZ  Components,  January     2008.  hOp://svn.ez.no/svn/ezcomponents/experimental/Reflec@on.  [6]E.  R.  MURPHY-­‐HILL,  P.  J.  QUITSLUND,  AND  A.  P.  BLACK,  Removing  Duplica;on  from     java.io:  a  Case  Study  using  Traits,  in  OOPSLA  05:  Companion  to  the  20th  annual   ACM  SIGPLAN  conference  on  Object-­‐oriented  programming,  systems,  languages,   and  applica@ons,  New  York,  NY,  USA,  2005,  ACM,  pp.  282–291.  15/12/10   Roundup  and  Conclusion   39  
  40. 40. Traits  Literature  [7]  PROGRAMMING  METHODS  LABORATORY,  Traits  for  Scala,  Programming   Language,  Ecole  Polytechnique  Fédérale  de  Lausanne,  2006.  hOp:// www.scala-­‐lang.org/intro/traits.html.  [8]  P.  J.  QUITSLUND,  E.  R.  MURPHY-­‐HILL,  AND  A.  P.  BLACK,  Suppor;ng  Java  traits  in   Eclipse,  in  eclipse  04:  Proceedings  of  the  2004  OOPSLA  workshop  on   eclipse  technology  eXchange,  New  York,  NY,  USA,  2004,  ACM,  pp.  37–41.  [9]  S.  REICHHART,  Traits  in  C#.  Video  of  Talk  at  MicrosoR  Research,  September   2005.  [10]  N.  SCHÄRLI,  Traits  —  Composing  Classes  from  Behavioral  Building  Blocks,   PhD  thesis,  University  of  Berne,  Feb.  2005.  [11]  SOFTWARE  COMPOSITION  GROUP,  Traits  for  Squeak,  Smalltalk  VM,  University   of  Berne,  December  2006.  hOp://www.iam.unibe.ch/  scg/Research/ Traits/index.html.  [12]  L.  WALL,  Apocalypse  12:  Class  Composi;on  with  Roles,  tech.  report,  The   Perl  Founda@on,  2004.  hOp://www.perl.com/pub/a/2004/04/16/ a12.html?page=11.  15/12/10   Roundup  and  Conclusion   40  

×