A model of computation is a formal description of a particular type of computational process. The description often takes the form of an abstract machine that is meant to perform the task at hand.
What other forms can a model of computation take than an abstract machine?
- What are the difference and relation between a model of computation and an abstract machine? I thought that they were the same, until I saw the the quote above.
An abstract machine typically defines instructions with opcodes and operands. A Warren abstract machine, a java virtual machine, a Turing machine. A programming model defines operations at a higher level, and could be independently supported by a number of different machines. For example the actor programming model says that an actor can send a message, create a new actor, and define internal state for its next message to be handled. This is said without defining specific opcodes and operands, though one could envision an abstract machine that supported that.