IBM Advanced Computing Systems -- Contributions of John Cocke

Mark Smotherman.


Contributions of John Cocke

You need to understand the absolutely central role of John Cocke. 90% of the ACS machine came out of his head....

To give you a picture of the way John operates:
John gets a brilliant idea and runs to the appropriate person's office. Halfway through explaining the idea, John gets a brilliant idea and runs to the appropriate person's office.

-- project member


The above quote undoubtedly overstates the 90%, but it is a testimony to the respect and fondness that project members had for John Cocke. John was an eccentric genius, bubbling with ideas. At points in his IBM career he was assigned handlers to accompany him and try to capture at least some of the torrent of ideas.

In his Turing Award paper in 1988, he said that ACS "was probably the most exciting project I have ever been involved in." During the project, "I learned the importance of not including hardware features that the compiler could not use and including hardware facilities to allow efficient compilation." This directly led to his work on the IBM 801 and the RISC instruction set design philosophy that impacted microprocessors in the 1980s.

... John wanted an FP machine, an I/O machine, and a streaming machine like Harvest ...

... Yorktown physicists claimed that you couldn't switch a circuit at 4 nsec, but John proved them wrong...

... stitch bonding of chips was John's idea ...

... instruction set ...

... multiple decoding of instructions ...

... packaging concepts ...

... need help from computer to prepare optimal form of programming, so John set about learning about compilers ... work led to Cocke and Schwartz book on compilers at NYU ...


See "John Cocke: A Retrospective by Friends," 1990 video by Mary S. Van Deusen and transcript

See the John Cocke interview by Bruce Shriver and Peter Capek

See the Harwood Kolsky interview on memories of John Cocke

See also "IBM Icon of Progress: RISC"


Navigation within IBM ACS pages:

Back to first ACS page

Next sections: Instruction Set / Branching / Example Code