John Cocke

United States – 1987
Short Annotated Bibliography


John Cocke rarely published research papers, relying instead on personal contacts and internal IBM reports to disseminate his ideas. The following published selections give just an indication of his work.

  1. Cocke, John, “The search for performance in scientific processors: the Turing Award lecture,” Communications of the ACM, Vol. 31, Num. 3, March 1988, pp. 250-253. Available here.  In this Turing Award lecture, Cocke describes the three most interesting projects that he was involved with at IBM: Stretch, the Advanced Computer system (ACS) and the IBM 801 computer.
  2. Cocke, J. and V. Markstein, “The evolution of RISC technology at IBM” IBM Journal of. Research and Development, Vol. 34, Num. 1, January 1990, pp. 4-11.  This paper traces the evolution of IBM RISC architecture from its origins in the 1970s at the IBM Thomas J. Watson Research Center to the IBM RISC System/6000® computer.
  3. Allen, F. E. and J. Cocke, “A program data flow analysis procedure,” Communications of the ACM, Vol.  19, Num. 3, March 1976, pp. 137-147. Available here.  This paper describes a "definition-use" data flow analysis on control-flow graphs that is particularly effective. It features a graph interval decomposition of the control flow graph, and the use of bit vectors as an efficient representation for sets. An appendix presents an implementation of the algorithm in PL/I.
  4. Cocke, John and Jacob T. Schwartz, Programming Languages and their Compilers, Courant Institute of Mathematical Sciences, New York University, April 1970.  This book devotes more than 200 pages to optimization algorithms. It included many of the now familiar techniques such as redundant code elimination and strength reduction