This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: "Model of computation" – news · newspapers · books · scholar · JSTOR (February 2021)

In computer science, and more specifically in computability theory and computational complexity theory, a **model of computation** is a model which describes how an output of a mathematical function is computed given an input. A model describes how units of computations, memories, and communications are organized.^{[1]} The computational complexity of an algorithm can be measured given a model of computation. Using a model allows studying the performance of algorithms independently of the variations that are specific to particular implementations and specific technology.

Models of computation can be classified into three categories: sequential models, functional models, and concurrent models.

Sequential models include:

- Finite state machines
- Post machines (Post–Turing machines and tag machines).
- Pushdown automata
- Register machines
- Turing machines
- Decision tree model

Functional models include:

Concurrent models include:

- Actor model
- Cellular automaton
- Interaction nets
- Kahn process networks
- Logic gates and digital circuits
- Petri nets
- Synchronous Data Flow

Some of these models have both deterministic and nondeterministic variants. Nondeterministic models are not useful for practical computation;^{[citation needed]} they are used in the study of computational complexity of algorithms.

Models differ in their expressive power; for example, each function that can be computed by a *Finite state machine* can also be computed by a *Turing machine*, but not vice versa.

In the field of runtime analysis of algorithms, it is common to specify a computational model in terms of *primitive operations* allowed which have unit cost, or simply **unit-cost operations**. A commonly used example is the random-access machine, which has unit cost for read and write access to all of its memory cells. In this respect, it differs from the above-mentioned Turing machine model.