www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - VTable/open resusable object model

reply BLS <nanali nospam-wanadoo.fr> writes:
An Object model that can be customised
to support powerful features such as multiple inheritance and
mixed-mode execution (native code/ byte code)
I also guess that it may help to implement dynamic class loading;

The new D object model ?
Bjoern

You will find a 144 LOC !  C implementation at the end of this document:
http://www.piumarta.com/pepsi/objmodel.pdf

and an implementation in Python at :
http://denkspuren.blogspot.com/2007_03_01_archive.html
Jul 17 2007
parent reply Robert Fraser <fraserofthenight gmail.com> writes:
BLS Wrote:

 An Object model that can be customized
 to support powerful features such as multiple inheritance and
 mixed-mode execution (native code/ byte code).
Really working on those complete sentences there? But, sure, it's not a bad idea (though, IMO, multiple inheritance _is_). But it seems like it'd be a lot of work at this stage for Walter, and I certainly don't think it should become part of the spec.
Jul 17 2007
parent reply BLS <nanali nospam-wanadoo.fr> writes:
Robert Fraser schrieb:
 BLS Wrote:

 An Object model that can be customized
 to support powerful features such as multiple inheritance and
 mixed-mode execution (native code/ byte code).
Really working on those complete sentences there?
Yes, A smalltalk derivat is allready implemented based on this object model, which is, compared to Cpp, approximate /only/ 20 percent slower.
 But, sure, it's not a bad idea (though, IMO, multiple inheritance 
_is_). But it seems like it'd be a lot of work at this stage for Walter, and I certainly don't think it should become part of the spec. Instead of multiple inheritance implementing *traits* is also possible : quote : Traits are a powerful software composition mechanism. A trait is a collection of methods without state that can be manipulated and combined with other traits according to an algebra of composition, aliasing and exclusion. They are interesting because they provide the power of multiple inheritance without the drawbacks and complexity of multi inheritance .... end quote Bjoern
Jul 18 2007
parent BLS <nanali nospam-wanadoo.fr> writes:
BLS schrieb:
 Robert Fraser schrieb:
  > BLS Wrote:
  >
  >> An Object model that can be customized
  >> to support powerful features such as multiple inheritance and
  >> mixed-mode execution (native code/ byte code).
  >
  > Really working on those complete sentences there?
 
 Yes, A smalltalk derivat is allready implemented based on this object 
 model, which is, compared to Cpp, approximate /only/ 20 percent slower.
 
  >
  > But, sure, it's not a bad idea (though, IMO, multiple inheritance 
 _is_). But it seems like it'd be a lot of work at this stage for Walter, 
 and I certainly don't think it should become part of the spec.
 
 Instead of multiple inheritance implementing *traits* is also possible :
 
 quote :
 Traits are a powerful software composition mechanism. A trait
 is a collection of methods without state that can be manipulated and
 combined with other traits according to an algebra of composition,
 aliasing and exclusion. They are interesting because they provide
 the power of multiple inheritance without the drawbacks and complexity
 of multi inheritance ....
 end quote
 
 
 Bjoern
For a better understanding have a look at http://vpri.org/pdf/colas_wp_RN-2006-001-a.pdf See graphic at page 5 and than page 23 More at : http://vpri.org/html/writings.htm Chapter *Fundamental New Computer Technologies* Okay that is more than enough <g>
Jul 18 2007