Difference between revisions of "Bill Gosper"

From Chessprogramming wiki
Jump to: navigation, search
 
(3 intermediate revisions by the same user not shown)
Line 15: Line 15:
  
 
=<span id="HAKMEM"></span>HAKMEM=
 
=<span id="HAKMEM"></span>HAKMEM=
[https://en.wikipedia.org/wiki/HAKMEM HAKMEM], alternatively known as [https://en.wikipedia.org/wiki/AI_Memo AI Memo] 239, is a February 1972 "memo" (technical report) of the [[Massachusetts Institute of Technology|MIT]] [https://en.wikipedia.org/wiki/MIT_Computer_Science_and_Artificial_Intelligence_Laboratory AI Lab] by Gosper et al. that describes a wide variety of [https://en.wikipedia.org/wiki/Kludge#In_computer_science hacks], primarily useful and clever [[Algorithms|algorithms]] <ref>[https://en.wikipedia.org/wiki/HAKMEM HAKMEM from Wikipedia]</ref>, and even a chess position <ref>Michael Beeler, Bill Gosper, [https://en.wikipedia.org/wiki/Richard_Schroeppel Rich Schroeppel] ('''1972'''). ''[http://home.pipeline.com/~hbaker1/hakmem/hakmem.html HAKMEM], Memo 239''. [https://en.wikipedia.org/wiki/MIT_Computer_Science_and_Artificial_Intelligence_Laboratory CSAIL], [[Massachusetts Institute of Technology|MIT]]</ref> <ref>[http://www.cl.cam.ac.uk/~am21/hakmemc.html HAKMEMC -- HAKMEM Programming hacks in C] by [http://www.cl.cam.ac.uk/~am21/ Alan Mycroft]</ref>. A few samples, referred elsewhere:
+
[https://en.wikipedia.org/wiki/HAKMEM HAKMEM], alternatively known as [https://en.wikipedia.org/wiki/AI_Memo AI Memo] 239, is a February 1972 "memo" (technical report) of the [[Massachusetts Institute of Technology|MIT]] [https://en.wikipedia.org/wiki/MIT_Computer_Science_and_Artificial_Intelligence_Laboratory AI Lab] by Gosper et al. that describes a wide variety of [https://en.wikipedia.org/wiki/Kludge#In_computer_science hacks], primarily useful and clever [[Algorithms|algorithms]] <ref>[https://en.wikipedia.org/wiki/HAKMEM HAKMEM from Wikipedia]</ref>, and even a chess position <ref>Michael Beeler, [[Bill Gosper]], [https://en.wikipedia.org/wiki/Richard_Schroeppel Rich Schroeppel] ('''1972'''). ''[https://dspace.mit.edu/handle/1721.1/6086 HAKMEM]'', Memo 239, Artificial Intelligence Laboratory, [[Massachusetts Institute of Technology]]</ref> <ref>[http://www.cl.cam.ac.uk/~am21/hakmemc.html HAKMEMC -- HAKMEM Programming hacks in C] by [http://www.cl.cam.ac.uk/~am21/ Alan Mycroft]</ref>. A few samples, referred elsewhere:
  
 
==<span id="HAKMEM70"></span>HAKMEM 70==
 
==<span id="HAKMEM70"></span>HAKMEM 70==
HAKMEM 70 <ref>[http://home.pipeline.com/~hbaker1/hakmem/games.html#item70 HAKMEM - GAMES: ITEM 70]</ref>, A neat chess problem, swiped from ''Chess for Fun and Chess for Blood'', by [https://en.wikipedia.org/wiki/Edward_Lasker Edward Lasker] <ref>[https://en.wikipedia.org/wiki/Edward_Lasker Edward Lasker] ('''1942,1962''') ''Chess for Fun and Chess for Blood''. Dover Publications; 2 Edition, ISBN-13: 978-0486201467, [http://www.amazon.com/Chess-Fun-Blood-Edward-Lasker/dp/0486201465 amazon]</ref>. White mates in three moves <ref>1.g8=N b5 2.Ne7 Kxb4 3.Nc6#</ref>:
+
HAKMEM 70, A neat chess problem, swiped from ''Chess for Fun and Chess for Blood'', by [https://en.wikipedia.org/wiki/Edward_Lasker Edward Lasker] <ref>[https://en.wikipedia.org/wiki/Edward_Lasker Edward Lasker] ('''1942,1962''') ''Chess for Fun and Chess for Blood''. Dover Publications; 2 Edition, ISBN-13: 978-0486201467, [http://www.amazon.com/Chess-Fun-Blood-Edward-Lasker/dp/0486201465 amazon]</ref>. White mates in three moves <ref>1.g8=N b5 2.Ne7 Kxb4 3.Nc6#</ref>:
  
 
<fentt border="double" style="font-size:24pt>5B2/6P1/1p6/8/1N6/kP6/2K5/8</fentt>
 
<fentt border="double" style="font-size:24pt>5B2/6P1/1p6/8/1N6/kP6/2K5/8</fentt>
Line 24: Line 24:
  
 
==<span id="HAKMEM169"></span>HAKMEM 169==
 
==<span id="HAKMEM169"></span>HAKMEM 169==
[[Population Count#HAKMEM169|HAKMEM 169]], to [[Population Count|count the ones]] in a [[PDP-6]]/[[PDP-10]] 36-bit word, written in [[Assembly#HAKMEM169|Assembly]] <ref>[[Population Count#HAKMEM169|HAKMEM 169]] by Gosper, Mann, Lenard, (Root and Mann), [http://home.pipeline.com/~hbaker1/hakmem/hakmem.html HAKMEM]</ref> <ref>[http://home.pipeline.com/~hbaker1/pdp-10/pdp-10.html PDP-10 Machine Language]</ref>:
+
[[Population Count#HAKMEM169|HAKMEM 169]], to [[Population Count|count the ones]] in a [[PDP-6]]/[[PDP-10]] 36-bit word, written in [[Assembly#HAKMEM169|Assembly]] <ref>[[Population Count#HAKMEM169|HAKMEM 169]] by Gosper, Mann, Lenard, (Root and Mann)</ref>  
 
<pre>
 
<pre>
 
   LDB  B,[014300,,A]    ;or MOVE B,A then LSH B,-1
 
   LDB  B,[014300,,A]    ;or MOVE B,A then LSH B,-1
Line 39: Line 39:
  
 
==<span id="HAKMEM175"></span>HAKMEM 175==
 
==<span id="HAKMEM175"></span>HAKMEM 175==
[[Traversing Subsets of a Set#Snoob|HAKMEM 175]] - next higher number with the same number of one bits (Snoob), by Bill Gosper, [[PDP-6]] [[Assembly]] <ref>[http://home.pipeline.com/~hbaker1/hakmem/hacks.html#item175 HAKMEM 175] by Bill Gosper</ref>:
+
[[Traversing Subsets of a Set#Snoob|HAKMEM 175]] - next higher number with the same number of one bits (Snoob), by Bill Gosper, [[PDP-6]] [[Assembly]]:
 
<pre>
 
<pre>
 
   MOVE  B,A
 
   MOVE  B,A
Line 63: Line 63:
  
 
=Selected Publications=  
 
=Selected Publications=  
* Michael Beeler, Bill Gosper, [https://en.wikipedia.org/wiki/Richard_Schroeppel Rich Schroeppel] ('''1972'''). ''[http://home.pipeline.com/~hbaker1/hakmem/hakmem.html HAKMEM], Memo 239''. [https://en.wikipedia.org/wiki/MIT_Computer_Science_and_Artificial_Intelligence_Laboratory CSAIL], [[Massachusetts Institute of Technology|MIT]] <ref>Web-available by [http://home.pipeline.com/~hbaker1/ Henry Baker]</ref>
+
* Michael Beeler, [[Bill Gosper]], [https://en.wikipedia.org/wiki/Richard_Schroeppel Rich Schroeppel] ('''1972'''). ''[https://dspace.mit.edu/handle/1721.1/6086 HAKMEM]'', Memo 239, Artificial Intelligence Laboratory, [[Massachusetts Institute of Technology]]
* Bill Gosper ('''1974'''). ''[https://dspace.mit.edu/handle/1721.1/6088 Acceleration of Series], Memo 304''. [https://en.wikipedia.org/wiki/MIT_Computer_Science_and_Artificial_Intelligence_Laboratory CSAIL], [[Massachusetts Institute of Technology|MIT]]
+
* [[Bill Gosper]] ('''1974'''). ''[https://dspace.mit.edu/handle/1721.1/6088 Acceleration of Series], Memo 304''. [https://en.wikipedia.org/wiki/MIT_Computer_Science_and_Artificial_Intelligence_Laboratory CSAIL], [[Massachusetts Institute of Technology|MIT]]
* Bill Gosper ('''1977'''). ''Decision procedure for indefinite hypergeometric summation''. [https://en.wikipedia.org/wiki/Proceedings_of_the_National_Academy_of_Sciences_of_the_United_States_of_America PNAS USA], Vol. 75, No. 1, [http://www.pnas.org/content/75/1/40.full.pdf pdf] <ref>[https://en.wikipedia.org/wiki/Gosper%27s_algorithm Gosper's algorithm from Wikipedia]</ref>
+
* [[Bill Gosper]] ('''1976'''). ''[https://perl.plover.com/classes/cftalk/INFO/gosper.txt Continued Fraction Arithmetic]''.  <ref>[https://perl.plover.com/yak/cftalk/ Arithmetic with Continued Fractions] by [https://en.wikiquote.org/wiki/Mark_Jason_Dominus Mark Jason Dominus],  </ref> <ref>[https://en.wikipedia.org/wiki/Continued_fraction Continued fraction from Wikipedia]</ref>
 +
* [[Bill Gosper]] ('''1977'''). ''Decision procedure for indefinite hypergeometric summation''. [https://en.wikipedia.org/wiki/Proceedings_of_the_National_Academy_of_Sciences_of_the_United_States_of_America PNAS USA], Vol. 75, No. 1, [http://www.pnas.org/content/75/1/40.full.pdf pdf] <ref>[https://en.wikipedia.org/wiki/Gosper%27s_algorithm Gosper's algorithm from Wikipedia]</ref>
 
* Corey Ziegler Hunts, Julian Ziegler Hunts, [[Bill Gosper]], [[Jack Holloway]] ('''2010'''). ''[http://www.blurb.com/b/2172660-minskys-trinskys-3rd-edition Minskys & Trinskys]''. 3rd edition, [http://gosper.org/Minskys/ Minsky files] by Bill Gosper <ref>[https://nbickford.wordpress.com/2011/04/03/the-minsky-circle-algorithm/ The Minsky Circle Algorithm – Random (Blog)] by [https://nbickford.wordpress.com/author/nbickford/ Neil Bickford], April 3, 2011</ref> » [[Marvin Minsky]]
 
* Corey Ziegler Hunts, Julian Ziegler Hunts, [[Bill Gosper]], [[Jack Holloway]] ('''2010'''). ''[http://www.blurb.com/b/2172660-minskys-trinskys-3rd-edition Minskys & Trinskys]''. 3rd edition, [http://gosper.org/Minskys/ Minsky files] by Bill Gosper <ref>[https://nbickford.wordpress.com/2011/04/03/the-minsky-circle-algorithm/ The Minsky Circle Algorithm – Random (Blog)] by [https://nbickford.wordpress.com/author/nbickford/ Neil Bickford], April 3, 2011</ref> » [[Marvin Minsky]]
  
Line 80: Line 81:
 
=References=  
 
=References=  
 
<references />
 
<references />
 
 
'''[[People|Up one level]]'''
 
'''[[People|Up one level]]'''
 
[[Category:Researcher|Gosper]]
 
[[Category:Researcher|Gosper]]
 
[[Category:Programmer|Gosper]]
 
[[Category:Programmer|Gosper]]

Latest revision as of 23:30, 10 July 2020

Home * People * Bill Gosper

Bill Gosper 2006 [1]

Ralph William (Bill) Gosper, Jr.,
an American mathematician and computer scientist, along with Richard Greenblatt considered the co-founder of the hacker community [2]. In the 60s, affiliated with MIT, he worked for Project MAC (Machine-Aided Cognition), where his contributions to computational mathematics and Bit-Twiddling include HAKMEM and Maclisp. He helped Greenblatt with his chess program Mac Hack VI, and operated the PDP-6 when Robert Q played its first tournament game versus Carl Wagner.

In the 70s, Bill Gosper moved to Stanford University for some years, where he lectured and helped Donald Knuth to write volume II of The Art of Computer Programming. He has worked at or consulted for Xerox PARC, Symbolics, Wolfram Research, the Lawrence Livermore National Laboratory, and Macsyma [3]. Bill Gosper created numerous packing problem puzzles such as the Twubblesome Twelve [4], and was interested in the Conway's Game of Life, where he found the Gun and originated the Hashlife algorithm to speed up the computation of Life patterns.

Robert Q

First tournament game by a computer, Carl Wagner (2190) - Mac Hack VI aka "Robert Q", January 21, 1967 [5]. "Robert Q", a computer programmed to play chess, was beaten in its first competition with a human, Carl Wagner. The computer, at MIT in Cambridge, Mass., was operated by Allen Moulton, and R. William Gosper, while Wagner made his moves several miles away in the YMCU in Boston. The moves were relayed into the computer by teletype operated by Alan Baisley. "Robert Q" was entered as an experiment, in the monthly Boylston Chess Club Tournament at the Young Mens Christian Union.

RobertQ1967.JPG

Allen Moulton and R. William Gosper (rear right) operating "Robert Q" on a PDP-6 [6]

HAKMEM

HAKMEM, alternatively known as AI Memo 239, is a February 1972 "memo" (technical report) of the MIT AI Lab by Gosper et al. that describes a wide variety of hacks, primarily useful and clever algorithms [7], and even a chess position [8] [9]. A few samples, referred elsewhere:

HAKMEM 70

HAKMEM 70, A neat chess problem, swiped from Chess for Fun and Chess for Blood, by Edward Lasker [10]. White mates in three moves [11]:

    
    
    
    
    
    
    
    
       
       
       
        
       
      
       
        
     ♗  
      ♙ 
 ♟      
        
 ♘      
♚♙      
  ♔     
        

5B2/6P1/1p6/8/1N6/kP6/2K5/8 w - -

HAKMEM 169

HAKMEM 169, to count the ones in a PDP-6/PDP-10 36-bit word, written in Assembly [12]

   LDB   B,[014300,,A]     ;or MOVE B,A then LSH B,-1
   AND   B,[333333,,333333]
   SUB   A,B
   LSH   B,-1
   AND   B,[333333,,333333]
   SUBB  A,B               ;each octal digit is replaced by number of 1's in it
   LSH   B,-3
   ADD   A,B
   AND   A,[070707,,070707]
   IDIVI A,77              ;casting out 63.'s

HAKMEM 175

HAKMEM 175 - next higher number with the same number of one bits (Snoob), by Bill Gosper, PDP-6 Assembly:

   MOVE  B,A
   MOVN  C,B
   AND   C,B
   ADD   A,C
   MOVE  D,A
   XOR   D,B
   LSH   D,-2
   IDIVM D,C
   IOR   A,C

Gosper's Glider Gun

Gospers glider gun.gif

Gosper's Glider Gun in action — a variation of Conway's Game of Life [13]

See also

Selected Publications

External Links

R. William Gosper
Rep-tiles

References

  1. Mathematician Bill Gosper in March, 2006 at the Seventh Gathering for Gardner (G4G7) in Atlanta, Georgia, March 16, 2006, Photographer Thane Plambeck
  2. Hackers: Heroes of the Computer Revolution
  3. Bill Gosper from Wikipedia
  4. Twubblesome Twelve - a difficult puzzle by Bill Gosper
  5. MIT Computer Loses to Human in Chess. Sun Journal (Lewiston), January 23, 1967, Google News
  6. MIT Computer Loses to Human in Chess. Sun Journal (Lewiston), January 23, 1967, Google News
  7. HAKMEM from Wikipedia
  8. Michael Beeler, Bill Gosper, Rich Schroeppel (1972). HAKMEM, Memo 239, Artificial Intelligence Laboratory, Massachusetts Institute of Technology
  9. HAKMEMC -- HAKMEM Programming hacks in C by Alan Mycroft
  10. Edward Lasker (1942,1962) Chess for Fun and Chess for Blood. Dover Publications; 2 Edition, ISBN-13: 978-0486201467, amazon
  11. 1.g8=N b5 2.Ne7 Kxb4 3.Nc6#
  12. HAKMEM 169 by Gosper, Mann, Lenard, (Root and Mann)
  13. Bill Gosper's Glider Gun in action — a variation of Conway's Game of Life. This image was made by using Life32 v2.15 beta by Johan G. Bontes, 2005, Gun (cellular automaton) from Wikipedia
  14. Arithmetic with Continued Fractions by Mark Jason Dominus,
  15. Continued fraction from Wikipedia
  16. Gosper's algorithm from Wikipedia
  17. The Minsky Circle Algorithm – Random (Blog) by Neil Bickford, April 3, 2011

Up one level