From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 Xref: utzoo comp.object:2738 comp.lang.ada:4970 Path: utzoo!news-server.csri.toronto.edu!cs.utexas.edu!usc!snorkelwacker.mit.edu!stanford.edu!leland.Stanford.EDU!elaine35.Stanford.EDU!craig From: craig@elaine35.Stanford.EDU (Craig Chambers) Newsgroups: comp.object,comp.lang.ada Subject: Re: ada-c++ productivity Message-ID: <1991Mar16.000624.2513@leland.Stanford.EDU> Date: 16 Mar 91 00:06:24 GMT References: <11966@pasteur.Berkeley.EDU> <1991Mar15.224626.27077@aero.org> Sender: news@leland.Stanford.EDU (Mr News) Organization: Stanford University List-Id: In article <1991Mar15.224626.27077@aero.org> jordan@aero.org (Larry M. Jordan) writes: >Language Inheritance DynamicBnd'g Type[T] Except. Task LibMgr >C++ yes-MI/class yes-vft no[1] no[2] no hand >Objective-C yes-SI/class yes-tlu no no no hand >Smalltalk yes-SI/class yes-tlu no no no ? >SELF yes-MI/object yes-? no no no ? >TP6.0 yes-SI/class yes-vft no no no auto >Eiffel yes-MI/class yes-vft yes yes no auto >Ada yes[3] no no[4] yes yes auto I'd argue that the mechanism for implementing dynamic binding is not so important, certainlyt not as important as many of the other features you list. But if you want to include it, Self's implementation of dynamic binding is based on hash table lookup with possible optimizations like in-line caching (also present in the ParcPlace Smalltalk-80 implementation), static binding, and inlining. I'd also guess that Eiffel uses tlu instead of vft to implement dynamic binding. Both Smalltalk and Self support multiple lightweight communicating threads within a single address space, so those values should probably read "yes" (depending on what you mean by "Task"). Also, both Smalltalk and Self implementations are effectively one big library manager. If you require some sort of separate compilation, then they don't have it, but if you just want automatic linking and compilation after programming changes or the ability to invoke code of objects/classes written by other people, then they are nice environments. -- Craig Chambers P.S. The eariler mention of "Cardelli and Wegner's" definition of OO should be attributed to just Wegner. Wegner's definitions are overly narrow and constrained in my view, and I believe that Cardelli would want to be able to form his own definitions.