home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / object / 5105 < prev    next >
Encoding:
Text File  |  1993-01-28  |  4.9 KB  |  118 lines

  1. Newsgroups: comp.object
  2. Path: sparky!uunet!charon.amdahl.com!amdahl!rtech!pacbell.com!ames!saimiri.primate.wisc.edu!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!The-Star.honeywell.com!umn.edu!news
  3. From: burchard@horizon.math.utah.edu (Paul Burchard)
  4. Subject: Re: Procedures and their instances (objects in traditional OO languages)
  5. Message-ID: <C1JMHB.EC6@news2.cis.umn.edu>
  6. Sender: news@news2.cis.umn.edu (Usenet News Administration)
  7. Nntp-Posting-Host: dialup-slip-1-42.gw.umn.edu
  8. Organization: University of Minnesota
  9. References: <PCG.93Jan27160420@csthor.aber.ac.uk>
  10. Date: Thu, 28 Jan 1993 02:48:43 GMT
  11. Lines: 105
  12.  
  13. In article <PCG.93Jan27160420@csthor.aber.ac.uk> pcg@aber.ac.uk (Piercarlo  
  14. Grandi) writes:
  15. > pcg> In particular they show that (in class based OO languages) classes
  16. > pcg> are procedures, and objects are procedure instances; closures if
  17. > pcg> the language is a traditional OO one, and continuations if the
  18. > pcg> language is an actor OO one.
  19. > Davis> Classes and objects are not procedures;
  20. > First, this is not what I wrote; I wrote:
  21. > pcg> (in class based OO languages) classes are procedures, and objects
  22. > pcg> are procedure instances
  23. > Both the qualification in parenthesis and the dictinction between
  24. > procedures and procedure instances are important (even if for the sake
  25. > of extreme brevity, and I regret that, I did not make the first explicit
  26. > in the very short frase: "More precisely objects are values of a
  27. > procedure instance (closure/continuation) record type.").
  28. > Second, classes and objects are procedures and procedure instances in
  29. > two very real senses; that this is how historically they were
  30. > 'invented', both in capability systems (the PDP-1) and in OO languages
  31. > (Simula 67); and that this is how they actually behave, even if this is
  32. > disguised by syntax and foggy terminology (the very special status of a
  33. > C++ constructor can only be fully understood if it is considered the
  34. > body of its class seen as a procedure, and even its invocation syntax is
  35. > inspired to that).
  36.  
  37. Interestingly, the procedure view of classes is very natural and helpful for 
  38. modeling abstract mathematical concepts in an organized way.  I have developed 
  39. a math <--> OOP dictionary taking advantage of this; an outline is given in
  40. the table below:
  41.  
  42.     Math            OOP
  43.     --------        ---------
  44.     category        protocol/signature (object type based on
  45.                   functionality rather than inheritance)
  46.     specific construction    
  47.       of objs in category    class/implementation conforming to protocol
  48.  
  49.     functor            class whose constructor applies the functor by
  50.                   accepting args in other categories
  51.  
  52. In particular, the most interesting classes are those which act as functors,
  53. or more precisely, whose constructors act as functors.  A functor is thought
  54. of as a specific way of constructing objects in its target category; this
  55. is exactly the role of a class in the dictionary.
  56.  
  57. --
  58. --------------------------------------------------------------------
  59. Paul Burchard    <burchard@geom.umn.edu>
  60. ``I'm still learning how to count backwards from infinity...''
  61. --------------------------------------------------------------------
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74. ocedures and procedure instances are important (even if for the sake
  75. > of extreme brevity, and I regret that, I did not make the first explicit
  76. > in the very short frase: "More precisely objects are values of a
  77. > procedure instance (closure/continuation) record type.").
  78. > Second, classes and objects are procedures and procedure instances in
  79. > two very real senses; that this is how historically they were
  80. > 'invented', both in capability systems (the PDP-1) and in OO languages
  81. > (Simula 67); and that this is how they actually behave, even if this is
  82. > disguised by syntax and foggy terminology (the very special status of a
  83. > C++ constructor can only be fully understood if it is considered the
  84. > body of its class seen as a procedure, and even its invocation syntax is
  85. > inspired to that).
  86.  
  87. Interestingly, the procedure view of classes is very natural and helpful for 
  88. modeling abstract mathematical concepts in an organized way.  I have developed 
  89. a math <--> OOP dictionary taking advantage of this; an outline is given in
  90. the table below:
  91.  
  92.     Math            OOP
  93.     --------        ---------
  94.     category        protocol/signature (object type based on
  95.                   functionality rather than inheritance)
  96.     specific construction    
  97.       of objs in category    class/implementation conforming to protocol
  98.  
  99.     functor            class whose constructor applies the functor by
  100.                   accepting args in other categories
  101.  
  102. In particular, the most interesting classes are those which act as functors,
  103. or more precisely, whose constructors act as functors.  A functor is thought
  104. of as a specific way of constructing objects in its target category; this
  105. is exactly the role of a class in the dictionary.
  106.  
  107. --
  108. --------------------------------------------------------------------
  109. Paul Burchard    <burchard@geom.umn.edu>
  110. ``I'm still learning how to count backwards from infinity...''
  111. --------
  112.