home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / object / 4606 < prev    next >
Encoding:
Text File  |  1992-12-21  |  2.5 KB  |  63 lines

  1. Newsgroups: comp.object
  2. Path: sparky!uunet!cs.utexas.edu!uwm.edu!linac!uchinews!alex!dave
  3. From: dave@alex.uchicago.edu (Dave Griffith)
  4. Subject: Re: Object hidden state and side effects
  5. Message-ID: <1992Dec20.162050.14652@midway.uchicago.edu>
  6. Sender: news@uchinews.uchicago.edu (News System)
  7. Organization: University of Chicago
  8. References: <BzF6uA.1u3@inews.Intel.COM> <1992Dec17.221333.3023@midway.uchicago.edu> <knight.724800436@cunews>
  9. Date: Sun, 20 Dec 1992 16:20:50 GMT
  10. Lines: 51
  11.  
  12. In article <knight.724800436@cunews> knight@mrco.carleton.ca (Alan Knight) writes:
  13.  
  14. >[Misattributes my stuff to Ben Bongalon, but I'll cope.]
  15. >
  16. >I can agree with most of this, but of course I have to add my two cents. 
  17. >
  18. >I agree entirely with Ralph Johnson that adding just the ability to
  19. >distinguish values and objects is completely inadequate, and that a
  20. >more comprehensive approach to describing code semantics is required.
  21. >Given that you seem to be attempting to design a next-generation
  22. >language, by all means explore this.
  23.  
  24. I'm on it.
  25.  
  26. >
  27. >As far as the particular question of objects and values is concerned,
  28. >there are really two separate issues which I think are orthogonal: the
  29. >presence of an identity operation separate from equality and
  30. >mutability. We get four classes of things, which I'm going to call by
  31. >the names that have been used in this discussion, even if I don't
  32. >think they're entirely appropriate.
  33. >
  34.  
  35. The problem is just what your expecting equality to do.  If it's just
  36. another comparison, then all of the following make sense.   If you also
  37. expect equality to satisfy "substituting equals for equals gives equals",
  38. things get more difficult.  In that case, mutable objects pretty much must
  39. have equality as identity.
  40.  
  41. >Mutable objects: Have an identity operation, can be modified.
  42. >The default case of objects.
  43. >
  44. >Immutable objects: Have no operations which modify state, but have an
  45. >identity operation. e.g. non-mutable strings
  46.  
  47. Might be useful, although the need for an identity operation for non-mutable
  48. strings escapes me.
  49.  
  50. >Values: Have no operations which modify state, have no identity
  51. >operation. e.g. numbers
  52. >
  53. >Normal storage (or mutable values): State can be modified, but there
  54. >is no identity operation. e.g. storage allocated on the stack in
  55. >traditional languages. 
  56.  
  57. 'Splain me, boss.  I'm feeling dumber than usual.
  58.  
  59. -- 
  60. Dave Griffith, Information Resources, University of Chicago,
  61. Department of Surgery                       dave@alex.bsd.uchicago.edu
  62. Become a sociopath.  We don't even have to sweat the big stuff.
  63.