Question: ### Background

The **Von-Neumann architecture** describes the stored-program computer where instructions and data are stored in memory and the machine works by changing its internal state, i.e an instruction operates on some data and modifies the data. So inherently, there is state maintained in the system.

The **Turing machine architecture** works by manipulating symbols on a tape. i.e A tape with infinite number of slots exists, and at any one point in time, the Turing machine is in a particular slot. Based on the symbol read at that slot, the machine can change the symbol and move to a different slot. All of this is deterministic. 

---

### Questions

1. Is there any relation between these two models? Was the Von Neuman model based on or inspired by the Turing model?
2. Can we say that Turing model is a superset of Von Newman model?
3. Does functional Programming fit into Turing model? If so, how? I assume
functional programing does not lend itself nicely to the Von Neuman model.

Answer: 
Generally one refers to the [Von Neumann](http://en.wikipedia.org/wiki/Von_Neumann_architecture) architecture, as contrasted with the [Harvard](http://en.wikipedia.org/wiki/Harvard_architecture) architecture. The former has code and data stored in the same way, whereas the latter has separate memory and bus pathways for code and data. All modern desktop PCs are Von Neumann, most microcontrollers are Harvard. Both are examples of real-world designs that attempt to emulate a theoretical Turing machine (which is impossible because a true Turing machine requires infinite memory).
Turing model defines computational capabilities without getting deep into implementation, no one will ever create computer that will look like Turing Machine literally. (Except enthusiasts <http://www.youtube.com/watch?v=E3keLeMwfHY> ).

Turing model is not **architecture**.

Von Neuman is guidance how to build computers. It says nothing about the computation capabilities. Depending on instruction set the produced computer may or may not be Turing complete (means can solve same tasks as Turing Machine)

Functional programming (lambda calculus) is another computational model that is Turing complete but can't be natively fit into Von Neumann architecture.