# Robert W. Floyd

Robert W. Floyd (born Robert Willoughby Floyd; June 8, 1936 – September 25, 2001) was an American computer scientist. His contributions include the design of the Floyd–Warshall algorithm (independently of Stephen Warshall), which efficiently finds all shortest paths in a graph and his work on parsing; Floyd's cycle-finding algorithm for detecting cycles in a sequence was attributed to him as well. In one isolated paper he introduced the important concept of error diffusion for rendering images, also called Floyd–Steinberg dithering (though he distinguished dithering from diffusion). He pioneered in the field of program verification using logical assertions with the 1967 paper Assigning Meanings to Programs. This was a contribution to what later became Hoare logic. Floyd received the Turing Award in 1978.

## Life

Born in New York City, Floyd finished high school at age 14. At the University of Chicago, he received a Bachelor of Arts (B.A.) in liberal arts in 1953 (when still only 17) and a second bachelor's degree in physics in 1958. Floyd was a college roommate of Carl Sagan.
Floyd became a staff member of the Armour Research Foundation (now IIT Research Institute) at Illinois Institute of Technology in the 1950s. Becoming a computer operator in the early 1960s, he began publishing many papers, including on compilers (particularly parsing). He was a pioneer of operator-precedence grammars, and is credited with initiating the field of programming language semantics in Floyd (1967). He was appointed an associate professor at Carnegie Mellon University by the time he was 27 and became a full professor at Stanford University six years later. He obtained this position without a Doctor of Philosophy (Ph.D.) degree.
He was a member of the International Federation for Information Processing (IFIP) IFIP Working Group 2.1 on Algorithmic Languages and Calculi, which specified, maintains, and supports the programming languages ALGOL 60 and ALGOL 68.
He was elected a Fellow of the American Academy of Arts and Sciences in 1974.
He received the Turing Award in 1978 "for having a clear influence on methodologies for the creation of efficient and reliable software, and for helping to found the following important subfields of computer science: the theory of parsing, the semantics of programming languages, automatic program verification, automatic program synthesis, and analysis of algorithms".
Floyd worked closely with Donald Knuth, in particular as the major reviewer for Knuth's seminal book The Art of Computer Programming, and is the person most cited in that work. He was co-author, with Richard Beigel, of the textbook The Language of Machines: an Introduction to Computability and Formal Languages. Floyd supervised seven Ph.D. graduates.
Floyd married and divorced twice, first with Jana M. Mason and then computer scientist Christiane Floyd, and he had four children. In his last years he suffered from Pick's disease, a neurodegenerative disease, and thus retired early in 1994.
His hobbies included hiking, and he was an avid backgammon player:
   We once were stuck at the Chicago O'Hare airport for hours, waiting for our flight to leave, owing to a snow storm. As we sat at our gate, Bob asked me, in a casual manner, "do you know how to play backgammon?" I answered I knew the rules, but why did he want to know? Bob said since we had several hours to wait perhaps we should play a few games, for small stakes of course. He then reached into his briefcase and removed a backgammon set.
   My Dad taught me many things. One was to be wary of anyone who suggests a game of pool for money, and then opens a black case and starts to screw together a pool stick. I figured that this advice generalized to anyone who traveled with their own backgammon set. I told Bob that I was not going to play for money, no way. He pushed a bit, but finally said fine. He proceeded instead to give me a free lesson in the art and science of playing backgammon.
   I was right to pass on playing him for money—at any stakes. The lesson was fun. I found out later that for years he had been working on learning the game. He took playing backgammon very seriously, studied the game and its mathematics, and was a near professional. I think it was more than a hobby. Like his research, Bob took what he did seriously, and it is completely consistent that he would be terrific at backgammon.

## Selected publications

* Floyd, Robert W. (1967). "Assigning Meanings to Programs" (PDF). In Schwartz, J.T. (ed.). Mathematical Aspects of Computer Science. Proceedings of Symposium on Applied Mathematics. Vol. 19. American Mathematical Society. pp. 19–32. ISBN 0821867288.
* Floyd, Robert W.; Knuth, Donald Ervin (1970). The Bose-Nelson sorting problem. Stanford, California: Computer Science Department, Stanford University.
* Floyd, Robert W.; Smith, Alan J. (1972). A linear time two tape merge. Stanford, California: Computer Science Department, Stanford University. OCLC 71469179.
* Floyd, R. W. (1979). "The paradigms of programming". Communications of the ACM. 22 (8): 455. doi:10.1145/359138.359140.
* Floyd, Robert W.; Ullman, Jeffrey D. (1980). "The Compilation of Regular Expressions into Integrated Circuits". NASA Sti/Recon Technical Report N. 81. Fairfax County, Virginia: Ft. Belvoir: Defense Technical Information Center: 12334. Bibcode:1980STIN...8112334F.
* Floyd, Robert W.; Beigel, Richard (1994). The Language of Machines: an introduction to computability and formal languages. New York: W H Freeman & Company. ISBN 978-0-7167-8266-7.