home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / lang / pop / 57 < prev    next >
Encoding:
Internet Message Format  |  1992-11-18  |  3.0 KB

  1. Path: sparky!uunet!usc!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!agate!doc.ic.ac.uk!uknet!news.cs.bham.ac.uk!axs
  2. From: axs@cs.bham.ac.uk (Aaron Sloman)
  3. Newsgroups: comp.lang.pop
  4. Subject: Re: A little Pop history
  5. Summary: welcome/introduction to this subject
  6. Message-ID: <BxqBIA.Kxq@cs.bham.ac.uk>
  7. Date: 14 Nov 92 23:20:34 GMT
  8. References: <Bxpqvt.Lq@deshaw.com>
  9. Sender: news@cs.bham.ac.uk
  10. Organization: School of Computer Science, University of Birmingham, UK
  11. Lines: 82
  12. Nntp-Posting-Host: emotsun
  13.  
  14. jcl@deshaw.com (Jonathan Laventhol) writes:
  15.  
  16. Hello Jonathan
  17.  
  18. > A little history lesson for those on the net.
  19. >
  20. > There was a Pop1 but I don't know anything about it.
  21. >
  22. > Pop2 was a programming language developed at the University of
  23. > Edinburgh (which is in SCOTLAND).
  24. >
  25. > The 'POP' of Pop11, Poplog et cetera, is a Robin Popplestone,
  26. > who, last I knew, was working in a university in Boston.  I
  27. > never asked him why it's not called Burst11, but there you go.
  28. > The best original paper is 'The Design Philosophy of Pop2' (if
  29. > I remember the title correctly), by Popplestone.
  30. >
  31. > There was no Pop3 to Pop10, to the best of my knowledge.
  32.  
  33. Pop10 was implemented for the PDP10 in Edinburgh by Julian
  34. Davies and was used there and in various other places including
  35. Toronto I think, for several years in the mid 70s.
  36.  
  37. > A Pop implementation at the University of Sussex (which is in
  38. > ENGLAND) was called Pop11 after the PDP-11 it ran on.
  39.  
  40. It was implemented by Steve Hardy, now somewhere in California. He
  41. called it Pop-11 because the PDP10 version had been called Pop10
  42.  
  43. > A better snippet:
  44. >     define recursivemember(item, list);
  45. >     var item, list, element;
  46. >         if list = [] then
  47. >             return(false)
  48. >         endif;
  49. >
  50. >         for el in list do
  51. >             if el = item then
  52. >                 return(true)
  53. >             elseif islist(el) then
  54. >                 return(recursivemember(item, el));
  55. >             endif
  56. >         endfor;
  57. >
  58. >         return(false);
  59. >     enddefine;
  60.  
  61. OOPS! You've been away from it a bit too long.
  62.  
  63.      define recursivemember(item, list);
  64.      lvars item, list, el;
  65.  
  66.          for el in list do
  67.              if el = item then
  68.                  return(true)
  69.              elseif islist(el) and recursivemember(item, el) then
  70.                 return(true)
  71.              endif
  72.          endfor;
  73.  
  74.          return(false);
  75.      enddefine;
  76.  
  77.     recursivemember("cat", [[the dog][a silly [black cat]] mouse]) =>
  78.     ** <true>
  79.     recursivemember("mouse", [[the dog][a silly [black cat]] mouse]) =>
  80.     ** <true>
  81.     recursivemember("dog", [[the dog][a silly [black cat]] mouse]) =>
  82.     ** <true>
  83.     recursivemember("house", [[the dog][a silly [black cat]] mouse]) =>
  84.     ** <false>
  85.  
  86. Pop2, Pop10, ALPHAPOP (the Mac version), the PDP11 version of Pop-11
  87. and early Poplog Pop-11 up to about 1984(?) had only dynamically
  88. scoped variables ("vars"), like early lisp systems. From about 1984
  89. Poplog Pop-11 had both dynamic scoping and lexical scoping of
  90. variables ("lvars").
  91. -- 
  92. Aaron Sloman, School of Computer Science,
  93. The University of Birmingham, B15 2TT, England
  94. EMAIL   A.Sloman@cs.bham.ac.uk  OR A.Sloman@bham.ac.uk
  95. Phone: +44-(0)21-414-3711       Fax:   +44-(0)21-414-4281
  96.