CPU's are to an extent designed with in mind the software that people will write for it, implicitly or explicitly.

It seems to me that if you look at the design of instruction set architectures, they are very "imperative", in the sense that each instruction encodes an imperative style command. It also seems to me that the current instruction set architectures have evolved partly based on the type of code programmers produce.

If one would design a CPU from scratch, knowing that it would only ever run programs written in a functional programming style, how would that CPU be designed differently from existing CPU's?

  • 6
    $\begingroup$ John Backus in his "Can Programming Be Liberated from the von Neumann Style?" mentions few such works (section 15). $\endgroup$ – Dmitri Urbanowicz Feb 11 at 9:54
  • $\begingroup$ Look for (graph) reduction machines or visit your local research library hoping to find a copy of W. Kluge's out-of-print book The Organization of Reduction, Data Flow, and Control Flow Systems (MIT Press, 1992). $\endgroup$ – Kai Feb 11 at 22:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.