Re: [BLACKBOX] foreign COM-objects part 2: inherit multiple interfaces

From: [at]} <Wojtek>
Date: Sat, 18 Dec 2010 22:31:55 -0500

----boundary-LibPST-iamunique-402911554_-_-
Content-type: text/plain

I heard that multiple inheritance is one of the main reasons that C++ has
severe performance problems in numerical applications. Even if you do not
use multiple inheritance in your code, it is still there biting the
performance.

The performance problems lead to new language constructs, which lead to
new problems, etc. The final outcome was that all problems were eventually
solved, as described in an article published in Computers in
Physics, Volume 11 Issue 3, May/June 1997. The article was titled
"Disambiguated glommable expression templates". After reading that article
I swore I would never touch C++, because I could not understand a single
paragraph. Unfortunately, the article does not seem available online.

I searched the web. As it turns out, the "Disambiguated glommable
expression templates" did not end in 1997. A more recent version is
available:
http://adtmag.com/articles/2000/04/25/disambiguated-glommable-expression-templates-reintroduced.aspx

The first page reads very well, because it cites Stroustrup himself (for
those who do it know what "Stroustrup" means, here is a disambiguated
definintion: Stroustrup == Wirth++). Here is the quote:

"It would be nice if every kind of numeric software could be written in
C++ without loss of efficiency, but unless something can be found that
achieves this without compromising the C++ type system it may be
preferable to rely on Fortran, assembler, or architecture-specific
extensions."

It is nice to hear from Stroustrup that assembler is preferred to C++. I
have never heard such a succicint judgement about C++ qualities.

In any case, I think the article may be worth reading.

I hope these remarks were helpful.

Wojtek


On Sun, 19 Dec 2010, Chris Burrows wrote:

>> -----Original Message-----
>> From: BlackBox [mailto:BLACKBOX{([at]})nowhere.xy
>> gunnar bernhardt (VDI)
>> Sent: Friday, 17 December 2010 7:06 PM
>> To: BLACKBOX{([at]})nowhere.xy
>> Subject: [BLACKBOX] foreign COM-objects part 2: inherit
>> multiple interfaces
>>
>> Am I correct that the reason is that Component Pascal as it is
>> defined in the Language Report (by Oberon) does not allow to
>> inherit from multiple interfaces so there is not easy way to
>> circumvent this?
>>
>
> Way over my head - but I had a look in Clemens Szyperski's (one of the
> co-founders of Oberon microsystems) book "Component Software - Beyond
> Object-Oriented Programming"
>
> http://research.microsoft.com/~cszypers/Books/component-software.htm
>
> In a section on multiple inheritance he states "Microsoft COM does not
> support multiple interface inheritance, but allows a component to support
> multiple interfaces simultaneously, to much the same effect".
>
> His book is worth investigating if you are likely to have a number of
> questions of this sort - many of the examples are in Component Pascal as
> well.
>
> Regards,
> Chris
>
> Chris Burrows
> CFB Software
> http://www.cfbsoftware.com
>
>
> ----
> To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy
>
>


----
To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy----boundary-LibPST-iamunique-402911554_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIEkgaGVhcmQgdGhhdCBtdWx0aXBsZSBpbmhlcml0
YW5jZSBpcyBvbmUgb2YgdGhlIG1haW4gcmVhc29ucyB0aGF0IEMrKyBoYXMgXHBhcg0Kc2V2ZXJl
IHBlcmZvcm1hbmNlIHByb2JsZW1zIGluIG51bWVyaWNhbCBhcHBsaWNhdGlvbnMuIEV2ZW4gaWYg
eW91IGRvIG5vdCBccGFyDQp1c2UgbXVsdGlwbGUgaW5oZXJpdGFuY2UgaW4geW91ciBjb2RlLCBp
dCBpcyBzdGlsbCB0aGVyZSBiaXRpbmcgdGhlIFxwYXINCnBlcmZvcm1hbmNlLlxwYXINClxwYXIN
ClRoZSBwZXJmb3JtYW5jZSBwcm9ibGVtcyBsZWFkIHRvIG5ldyBsYW5ndWFnZSBjb25zdHJ1Y3Rz
LCB3aGljaCBsZWFkIHRvIFxwYXINCm5ldyBwcm9ibGVtcywgZXRjLiBUaGUgZmluYWwgb3V0Y29t
ZSB3YXMgdGhhdCBhbGwgcHJvYmxlbXMgd2VyZSBldmVudHVhbGx5IFxwYXINCnNvbHZlZCwgYXMg
ZGVzY3JpYmVkIGluIGFuIGFydGljbGUgcHVibGlzaGVkIGluIENvbXB1dGVycyBpbiBccGFyDQpQ
aHlzaWNzLCBWb2x1bWUgMTEgSXNzdWUgMywgTWF5L0p1bmUgMTk5Ny4gVGhlIGFydGljbGUgd2Fz
IHRpdGxlZCBccGFyDQoiRGlzYW1iaWd1YXRlZCBnbG9tbWFibGUgZXhwcmVzc2lvbiB0ZW1wbGF0
ZXMiLiBBZnRlciByZWFkaW5nIHRoYXQgYXJ0aWNsZSBccGFyDQpJIHN3b3JlIEkgd291bGQgbmV2
ZXIgdG91Y2ggQysrLCBiZWNhdXNlIEkgY291bGQgbm90IHVuZGVyc3RhbmQgYSBzaW5nbGUgXHBh
cg0KcGFyYWdyYXBoLiBVbmZvcnR1bmF0ZWx5LCB0aGUgYXJ0aWNsZSBkb2VzIG5vdCBzZWVtIGF2
YWlsYWJsZSBvbmxpbmUuXHBhcg0KXHBhcg0KSSBzZWFyY2hlZCB0aGUgd2ViLiBBcyBpdCB0dXJu
cyBvdXQsIHRoZSAiRGlzYW1iaWd1YXRlZCBnbG9tbWFibGUgXHBhcg0KZXhwcmVzc2lvbiB0ZW1w
bGF0ZXMiIGRpZCBub3QgZW5kIGluIDE5OTcuIEEgbW9yZSByZWNlbnQgdmVyc2lvbiBpcyBccGFy
DQphdmFpbGFibGU6XHBhcg0KaHR0cDovL2FkdG1hZy5jb20vYXJ0aWNsZXMvMjAwMC8wNC8yNS9k
aXNhbWJpZ3VhdGVkLWdsb21tYWJsZS1leHByZXNzaW9uLXRlbXBsYXRlcy1yZWludHJvZHVjZWQu
YXNweFxwYXINClxwYXINClRoZSBmaXJzdCBwYWdlIHJlYWRzIHZlcnkgd2VsbCwgYmVjYXVzZSBp
dCBjaXRlcyBTdHJvdXN0cnVwIGhpbXNlbGYgKGZvciBccGFyDQp0aG9zZSB3aG8gZG8gaXQga25v
dyB3aGF0ICJTdHJvdXN0cnVwIiBtZWFucywgaGVyZSBpcyBhIGRpc2FtYmlndWF0ZWQgXHBhcg0K
ZGVmaW5pbnRpb246IFN0cm91c3RydXAgPT0gV2lydGgrKykuIEhlcmUgaXMgdGhlIHF1b3RlOlxw
YXINClxwYXINCiJJdCB3b3VsZCBiZSBuaWNlIGlmIGV2ZXJ5IGtpbmQgb2YgbnVtZXJpYyBzb2Z0
d2FyZSBjb3VsZCBiZSB3cml0dGVuIGluIFxwYXINCkMrKyB3aXRob3V0IGxvc3Mgb2YgZWZmaWNp
ZW5jeSwgYnV0IHVubGVzcyBzb21ldGhpbmcgY2FuIGJlIGZvdW5kIHRoYXQgXHBhcg0KYWNoaWV2
ZXMgdGhpcyB3aXRob3V0IGNvbXByb21pc2luZyB0aGUgQysrIHR5cGUgc3lzdGVtIGl0IG1heSBi
ZSBccGFyDQpwcmVmZXJhYmxlIHRvIHJlbHkgb24gRm9ydHJhbiwgYXNzZW1ibGVyLCBvciBhcmNo
aXRlY3R1cmUtc3BlY2lmaWMgXHBhcg0KZXh0ZW5zaW9ucy4iXHBhcg0KXHBhcg0KSXQgaXMgbmlj
ZSB0byBoZWFyIGZyb20gU3Ryb3VzdHJ1cCB0aGF0IGFzc2VtYmxlciBpcyBwcmVmZXJyZWQgdG8g
QysrLiBJIFxwYXINCmhhdmUgbmV2ZXIgaGVhcmQgc3VjaCBhIHN1Y2NpY2ludCBqdWRnZW1lbnQg
YWJvdXQgQysrIHF1YWxpdGllcy5ccGFyDQpccGFyDQpJbiBhbnkgY2FzZSwgSSB0aGluayB0aGUg
YXJ0aWNsZSBtYXkgYmUgd29ydGggcmVhZGluZy5ccGFyDQpccGFyDQpJIGhvcGUgdGhlc2UgcmVt
YXJrcyB3ZXJlIGhlbHBmdWwuXHBhcg0KXHBhcg0KV29qdGVrXHBhcg0KXHBhcg0KXHBhcg0KT24g
U3VuLCAxOSBEZWMgMjAxMCwgQ2hyaXMgQnVycm93cyB3cm90ZTpccGFyDQpccGFyDQo+PiAtLS0t
LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLVxwYXINCj4+IEZyb206IEJsYWNrQm94IFttYWlsdG86QkxB
Q0tCT1hATElTVFMuT0JFUk9OLkNIXSBPbiBCZWhhbGYgT2ZccGFyDQo+PiBndW5uYXIgYmVybmhh
cmR0IChWREkpXHBhcg0KPj4gU2VudDogRnJpZGF5LCAxNyBEZWNlbWJlciAyMDEwIDc6MDYgUE1c
cGFyDQo+PiBUbzogQkxBQ0tCT1hATElTVFMuT0JFUk9OLkNIXHBhcg0KPj4gU3ViamVjdDogW0JM
QUNLQk9YXSBmb3JlaWduIENPTS1vYmplY3RzIHBhcnQgMjogaW5oZXJpdFxwYXINCj4+IG11bHRp
cGxlIGludGVyZmFjZXNccGFyDQo+PlxwYXINCj4+IEFtIEkgY29ycmVjdCB0aGF0IHRoZSByZWFz
b24gaXMgdGhhdCBDb21wb25lbnQgUGFzY2FsIGFzIGl0IGlzXHBhcg0KPj4gZGVmaW5lZCAgaW4g
dGhlIExhbmd1YWdlIFJlcG9ydCAoYnkgT2Jlcm9uKSBkb2VzIG5vdCBhbGxvdyB0b1xwYXINCj4+
IGluaGVyaXQgZnJvbSAgbXVsdGlwbGUgaW50ZXJmYWNlcyBzbyB0aGVyZSBpcyBub3QgZWFzeSB3
YXkgdG9ccGFyDQo+PiBjaXJjdW12ZW50IHRoaXM/XHBhcg0KPj5ccGFyDQo+XHBhcg0KPiBXYXkg
b3ZlciBteSBoZWFkIC0gYnV0IEkgaGFkIGEgbG9vayBpbiBDbGVtZW5zIFN6eXBlcnNraSdzIChv
bmUgb2YgdGhlXHBhcg0KPiBjby1mb3VuZGVycyBvZiBPYmVyb24gbWljcm9zeXN0ZW1zKSBib29r
ICJDb21wb25lbnQgU29mdHdhcmUgLSBCZXlvbmRccGFyDQo+IE9iamVjdC1PcmllbnRlZCBQcm9n
cmFtbWluZyJccGFyDQo+XHBhcg0KPiBodHRwOi8vcmVzZWFyY2gubWljcm9zb2Z0LmNvbS9+Y3N6
eXBlcnMvQm9va3MvY29tcG9uZW50LXNvZnR3YXJlLmh0bVxwYXINCj5ccGFyDQo+IEluIGEgc2Vj
dGlvbiBvbiBtdWx0aXBsZSBpbmhlcml0YW5jZSBoZSBzdGF0ZXMgIk1pY3Jvc29mdCBDT00gZG9l
cyBub3RccGFyDQo+IHN1cHBvcnQgbXVsdGlwbGUgaW50ZXJmYWNlIGluaGVyaXRhbmNlLCBidXQg
YWxsb3dzIGEgY29tcG9uZW50IHRvIHN1cHBvcnRccGFyDQo+IG11bHRpcGxlIGludGVyZmFjZXMg
c2ltdWx0YW5lb3VzbHksIHRvIG11Y2ggdGhlIHNhbWUgZWZmZWN0Ii5ccGFyDQo+XHBhcg0KPiBI
aXMgYm9vayBpcyB3b3J0aCBpbnZlc3RpZ2F0aW5nIGlmIHlvdSBhcmUgbGlrZWx5IHRvIGhhdmUg
YSBudW1iZXIgb2ZccGFyDQo+IHF1ZXN0aW9ucyBvZiB0aGlzIHNvcnQgLSBtYW55IG9mIHRoZSBl
eGFtcGxlcyBhcmUgaW4gQ29tcG9uZW50IFBhc2NhbCBhc1xwYXINCj4gd2VsbC5ccGFyDQo+XHBh
cg0KPiBSZWdhcmRzLFxwYXINCj4gQ2hyaXNccGFyDQo+XHBhcg0KPiBDaHJpcyBCdXJyb3dzXHBh
cg0KPiBDRkIgU29mdHdhcmVccGFyDQo+IGh0dHA6Ly93d3cuY2Zic29mdHdhcmUuY29tXHBhcg0K
PlxwYXINCj5ccGFyDQo+IC0tLS1ccGFyDQo+IFRvIHVuc3Vic2NyaWJlLCBzZW5kIGEgbWVzc2Fn
ZSB3aXRoIGJvZHkgIlNJR05PRkYgQkxBQ0tCT1giIHRvIExJU1RTRVJWQExJU1RTLk9CRVJPTi5D
SFxwYXINCj5ccGFyDQo+XHBhcg0KXHBhcg0KXHBhcg0KLS0tLVxwYXINClRvIHVuc3Vic2NyaWJl
LCBzZW5kIGEgbWVzc2FnZSB3aXRoIGJvZHkgIlNJR05PRkYgQkxBQ0tCT1giIHRvIExJU1RTRVJW
QExJU1RTLk9CRVJPTi59fQBib2R5ICI=
----boundary-LibPST-iamunique-402911554_-_---
Received on Sun Dec 19 2010 - 04:31:55 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:30:27 UTC