Newsgroups: comp.lang.smalltalk,comp.object
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!bloom-beacon.mit.edu!gatech!swrinde!pipex!uknet!comlab.ox.ac.uk!sable.ox.ac.uk!lady0065
From: lady0065@sable.ox.ac.uk (David Hopwood)
Subject: Re: [Q] Multiple Inheritance
Message-ID: <1995Feb9.171550.11846@inca.comlab.ox.ac.uk>
Sender: david.hopwood@lmh.oxford.ac.uk
Organization: Oxford University, England
References: <JKVG.95Jan29195005@kamet.ccs.neu.edu> <1995Feb3.162310.2504@rcmcon.com> <3h6fvp$mjm@ns.oar.net> <1995Feb9.125742.5565@inca.comlab.ox.ac.uk>
Date: Thu, 9 Feb 95 17:15:50 GMT
Lines: 44
Xref: glinda.oz.cs.cmu.edu comp.lang.smalltalk:20623 comp.object:26444

In article <1995Feb9.125742.5565@inca.comlab.ox.ac.uk>, I wrote:
>In article <3h6fvp$mjm@ns.oar.net>, <drr@terrapin.raleigh.com> wrote:

>>... In short, the point is that object behavior and object
>>representation are two entirely different animals, and ALL (CAVEAT LECTOR:
>>that I know of) OOPS-languages confuse them.
>
>I know of at least three that do not: Cecil, Trellis/Owl, and Sather.
...
>http://www.cs.washington.edu/research/projects/cecil/www/cecil-home.html
>http://www.icsi.berkeley.edu/Sather

I've looked through my notes and found several more: Emerald, Signature-C++,
Dylan, and Typed Smalltalk.
Also, Objective-C if you count protocols as types.

Here are references for Emerald and Dylan:

Emerald
- Andrew Black, Norman Hutchinson, Eric Jul and Henry Levy, ``Object
  Structure in the Emerald System,'' Proceedings OOPSLA '86, ACM
  SIGPLAN Notices, vol. 21, no. 11, Nov 1986, pp. 78-86. 
- Andrew Black, Norman Hutchinson, Eric Jul, Henry Levy and Larry Carter, 
  ``Distribution and Abstract Data Types in Emerald,'' IEEE Transactions
  on Software Engineering, vol. SE-13, no. 1, Jan 1987, pp. 65-76. 
- Norman C. Hutchinson, Rajindra K. Raj, Andrew P. Black, Henry M. Levy
  and Eric Jul, ``The Emerald Programing Lanuage Report,'' Technical
  Report 87-10-07, Department of Computer Science, University of
  Washington, Seattle, October 1987.

Dylan
http://legend.gwydion.cs.cmu.edu:8001/


I've been trying to work out whether C+@ separates interfaces from
implementations; my guess is it does.

The test is: only the interface of an object, not its representation, should
determine its type.
In particular, that should make it possible to re-implement _any_ type
without inheriting an existing implementation.

David Hopwood
david.hopwood@lmh.oxford.ac.uk
