Vaughan Pratt (born April 12, 1944) is a Professor Emeritus at Stanford University, who was an early pioneer in the field of computer science. Since 1969, Pratt has made several contributions to foundational areas such as search algorithms, sorting algorithms, and primality testing. More recently, his research has focused on formal modeling of concurrent systems and Chu spaces.

Vaughan Pratt
Born
Vaughan Ronald Pratt

(1944-04-12) April 12, 1944 (age 80)
Melbourne, Australia
EducationStanford University (1972)
University of Sydney (1970)
Known forKnuth–Morris–Pratt algorithm
Pratt certificate
Pratt parser
Scientific career
FieldsComputer science
InstitutionsStanford University
MIT
Academic advisorsDonald Knuth
Doctoral students
Websiteboole.stanford.edu/pratt.html

Career

edit

Raised in Australia and educated at Knox Grammar School, where he was dux in 1961, Pratt attended Sydney University, where he completed his masters thesis in 1970, related to what is now known as natural language processing. He then went to the United States, where he completed a Ph.D. thesis at Stanford University in only 20 months under the supervision of advisor Donald Knuth. His thesis focused on analysis of the Shellsort sorting algorithm and sorting networks.[1]

Pratt was an assistant professor at MIT (1972 to 1976) and then associate professor (1976 to 1982). In 1974, working in collaboration with Knuth and James H. Morris, Pratt completed and formalized work he had begun in 1970 as a graduate student at Berkeley; the coauthored result was the Knuth–Morris–Pratt pattern matching algorithm. In 1976, he developed the system of dynamic logic, a modal logic of structured behavior.

He went on sabbatical from MIT to Stanford (1980 to 1981), and was appointed a full professor at Stanford in 1981.

Pratt directed the SUN workstation project at Stanford from 1980 to 1982. He contributed in various ways to the founding and early operation of Sun Microsystems, acting in the role of consultant for its first year, then, taking a leave of absence from Stanford for the next two years, becoming director of research, and finally resuming his role as a consultant to Sun and returning to Stanford in 1985.

He also designed the Sun Microsystems logo,[2] which features four interleaved copies of the word "sun"; it is an ambigram.

Pratt became professor emeritus at Stanford in 2000.

Major contributions

edit

A number of well-known algorithms bear Pratt's name. Pratt certificates, short proofs of the primality of a number, demonstrated in a practical way that primality can be efficiently verified, placing the primality testing problem in the complexity class NP and providing the first strong evidence that the problem is not co-NP-complete.[3] The Knuth–Morris–Pratt algorithm, which Pratt designed in the early 1970s together with fellow Stanford professor Donald Knuth and independently from Morris, is still the most efficient general string searching algorithm known today.[4] Along with Blum, Floyd, Rivest, and Tarjan, he described median of medians, the first worst-case optimal selection algorithm.[5]

Useful tool building

edit

Pratt built some useful tools. In 1976, he wrote an MIT AI Lab working paper about CGOL, an alternative syntax for MACLISP that he had designed and implemented based on his paradigm for top-down operator precedence parsing.[6] His parser is sometimes called a "Pratt parser"[7] and has been used in later systems, such as MACSYMA. Douglas Crockford also used it as the underlying parser for JSLint.[8] Pratt also implemented a TECO-based text editor named "DOC", which was later renamed to "ZED".[9]

In 1999, Pratt built the world's smallest (at the time) web server—it was the size of a matchbox.[10][11]

Other contributions

edit

Pratt was credited in a 1995 Byte magazine article for proposing that the Pentium FDIV bug might have worse consequences than either Intel or IBM was predicting at the time.[12][13]

Today Pratt has a wide influence. In addition to his Stanford professorship, he holds membership in at least seven professional organizations. He is a fellow of the Association for Computing Machinery and is on the editorial board of three major mathematics journals. He was also the founder, chairman, and CTO of TIQIT Computers, Inc. for the ten years prior to when it closed its doors in 2010.

References

edit
  1. ^ Vaughan Ronald Pratt: Shellsort and Sorting Networks. Garland Publishing, Inc., New York & London, 1979, ISBN 0-8240-4406-1
  2. ^ "Designers: Vaughan Pratt". Logobook. Archived from the original on 9 August 2020. Retrieved 7 August 2021.
  3. ^ Vaughan Pratt. Every prime has a succinct certificate. SIAM Journal on Computing, vol.4, pp.214–220. 1975. Citations, Full-text (requires paid login)
  4. ^ Donald Knuth, James H. Morris, Jr., and Vaughan Pratt. Fast pattern matching in strings. SIAM Journal on Computing, 6(2):323–350. 1977. Citations
  5. ^ Blum, M.; Floyd, R. W.; Pratt, V. R.; Rivest, R. L.; Tarjan, R. E. (August 1973). "Time bounds for selection" (PDF). Journal of Computer and System Sciences. 7 (4): 448–461. doi:10.1016/S0022-0000(73)80033-9.
  6. ^ Pratt, V.R., Top Down Operator Precedence. Proceedings of the ACM Symposium on Principles of Programming Languages. 1973. pp41-51.
  7. ^ George J. Carrette A simple Pratt-Parser for SIOD. 1990.
  8. ^ https://github.com/douglascrockford/JSLint/blob/40e3f73127b56f24a12e5cb091a86d9a24130926/fulljslint.js jslint source code line 2224
  9. ^ Eric Fischer. Emacs and Other Editors. alt.folklore.computers. November 15, 2000.
  10. ^ BBC News.Surfing on a matchbox. 1999.
  11. ^ CNN News. Smallest Web server fits in shirt pocket. 1999.
  12. ^ "How to Bruise an Integer" Archived 2008-10-07 at the Wayback Machine, Byte, March 1995.
  13. ^ "Chain Reaction in Pentiums", Vaughan Pratt, 1994. In wdv-notes334, 22 Jan, 1995. Article is formatted from a newsgroup posting: Vaughan Pratt (30 December 1994). ""TECHNICAL: Chain reaction in Pentiums (Was: The Flaw: Pentium-Contaminated Data Persists)"". Newsgroupcomp.sys.intel. Usenet: 3e097i$952@Radon.Stanford.EDU. Retrieved 3 June 2006.
edit
  NODES
Association 1
Note 2
Project 2