Younger programmers may not appreciate how big a revolution the quantitative approach to computer design was. It now seems like an obvious idea: since all machines are Turing-complete, instruction sets and architecture should be optimized for performance across some representative workloads. Since the instruction set is one of the variables, the tasks must be specified in a high-level language and the compiler becomes part of the system being optimized.<p>Before that, instruction sets were driven more by aesthetics and marketing than performance. That sold chips in a world where people wrote assembly code -- instructions were added like language features. Thus instructions like REPNZ SCAS (ie, strlen) which was sweet if you were writing string handling code in assembler.<p>H&P must have been in the queue for the Turing award since the mid-90s. There seems to be a long backlog.