wu@crystal.UUCP (T. Wu) (03/14/86)
I think we can roughly say that: 1) Applicative (functional) languages are based on the computation model of lambda calculus, 2) Logical languages are founded on the computation model of resolution-based theory proving. Then what is the proper model for `object-oriented' programming languages ? I would appreciate any kind of reply. -- ----- Felix S.T. Wu {allegra,ihnp4,heurikon,seismo,uwm-evax}!uwvax!wu wu@crys.wisc.edu
kfr@umich.UUCP (Karl F. Ruehr) (03/15/86)
> I think we can roughly say that: > > 1) Applicative (functional) languages are based on the computation model > of lambda calculus, > 2) Logical languages are founded on the computation model of resolution-based > theory proving. > > Then what is the proper model for `object-oriented' programming languages ? > One pointer I can offer is the paper: "A Syntactic Theory of Message Passing", Stephen A. Ward & Robert H. Halstead. Journal of the ACM, v27#2, April 1980, pp 365-383. This describes a calculus similar to lambda calculus but based on the notion of message-passing rather than function application. They also make some remarks about connections with multi-processing aspects of the calculus and implementation. Two remarks I should make here: 1) Message-passing may be only ONE aspect of object-oriented programming that needs to be given a good theoretical model; this depends on your point of view (see various discussions in SIGPLAN Notices over the last 2-4 years, esp. Rentsch & MacLennan). Other aspects that various people see as being important are (multiple) inheritance, persistent local state and the inversion of modularity that results from nesting methods (functions) within objects (data). Work by Cardelli and Strom (separately) looks at the first 2 of these aspects, but seems to find them independent of object-orientation as such (references available on request ...). 2) The "mu-calculus" is an after-the-fact attempt to formalize object-oriented systems, not a theory that inspired a style of programming. Therefore, it is up to people who have strong intuitions about what object-orientation is to decide if mu-calculus really captures the right ideas. I am personally not in any position to do this, as my own intuitions have mostly to do with the functional or applicative style. I understand that Carl Hewitt at MIT has done a lot of work on the "actor" model of object-oriented programming, but I have never tracked down any of the references on this. I did hear one of his students give a talk about relativistic phenomena in a world where different actors (think: processors) have different relative notions of time ... If anyone can provide references or explanations on that, I would be very interested. -- K. Fritz Ruehr Univ. of Michigan