Hi Alexandre:

On 25 Mar 2010, at 23:26, Alexandre Bergel wrote:
> The solution of Visualworks was quite simple, and I think it makes sense in 
> most of the practical cases: when you compose traits, you simply concatenate 
> the variables defined in the composed traits with the variables defined in 
> the class. Duplicated names are then removed. Easy.
Ehm, what does that exactly mean?

The resulting class will have a set of instance variables where the name is the 
identity criterion of the set?

A PHP example would look like:

class Base{
  var $a;
}

trait T1 {
  var $a;
  var $b;
}

trait T2 {
  var $a;
  var $c;
}

class Composite extends Base {
  use T1, T2;
}

and Composite would have the instance variables $a, $b, $c.
The problem would be of course that Base, T1, and T2 could use $a for 
completely different things.

Simple, but at the cost of composability/safety.
This semantics is also that of my proposal for PHP.

Best regards
Stefan

> 
> Cheers,
> Alexandre
> 
> 
> On 25 Mar 2010, at 17:19, Stefan Marr wrote:
> 
>> Hi Alexandre:
>> 
>> 
>> Thanks.
>> I have read all these papers already, but kind of hoped that there is 
>> something I missed so far.
>> 
>> On 25 Mar 2010, at 23:00, Alexandre Bergel wrote:
>>> "Stateful Traits and their Formalization" 
>>> http://scg.unibe.ch/scgbib?_k=OiaJOIuA&query=Berg08e&display=abstract
>>> => It describes stateful traits
>>> 
>>> "User-Changeable Visibility: Resolving Unanticipated Name Clashes in 
>>> Traits" 
>>> http://scg.unibe.ch/scgbib?_k=NNRwidu5&query=freezable+traits&display=abstract
>>> =>Freezable traits
>>> 
>>> "Adding State and Visibility Control to Traits using Lexical Nesting" 
>>> http://scg.unibe.ch/scgbib?_k=J-wbMltV&query=tom+cutsem+bergel
>>> => Traits for a class-less language
>> My problem is, that these proposals involve a lot additional complexity.
>> And, Tom's paper is not really applicable to PHP. PHP just does not have a 
>> real notion of lexical context.
>> 
>> Thanks
>> Stefan
>> 
>> 
>> 
>> -- 
>> Stefan Marr
>> Software Languages Lab
>> Vrije Universiteit Brussel
>> Pleinlaan 2 / B-1050 Brussels / Belgium
>> http://soft.vub.ac.be/~smarr
>> Phone: +32 2 629 2974
>> Fax:   +32 2 629 3525
>> 
>> 
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> 
> -- 
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> 
> 
> 
> 
> 
> 
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project



-- 
Stefan Marr
Software Languages Lab
Vrije Universiteit Brussel
Pleinlaan 2 / B-1050 Brussels / Belgium
http://soft.vub.ac.be/~smarr
Phone: +32 2 629 2974
Fax:   +32 2 629 3525


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to