# Difference between Mealy machine and Moore machine

Prerequisite – Mealy and Moore Machines

**Mealy Machine –** A mealy machine is defined as a machine in theory of computation whose output values are determined by both its current state and current inputs. In this machine atmost one transition is possible.

It has 6 tuples: (Q, q0, ∑, O, δ, λ’)

Q is finite set of states

q0 is the initial state

∑ is the input alphabet

O is the output alphabet

δ is transition function which maps Q×∑ → Q

‘λ’ is the output function which maps Q×∑→ O

**Diagram –**

**Moore Machine –** A moore machine is defined as a machine in theory of computation whose output values are determined only by its current state.

It has also 6 tuples: (Q, q0, ∑, O, δ, λ)

Q is finite set of states

q0 is the initial state

∑ is the input alphabet

O is the output alphabet

δ is transition function which maps Q×∑ → Q

λ is the output function which maps Q → O

**Diagram –**

**Moore Machine –**

- Output depends only upon present state.
- If input changes, output does not change.
- More number of states are required.
- There is more hardware requirement.
- They react slower to inputs(One clock cycle later)
- Synchronous output and state generation.
- Output is placed on states.
- Easy to design.

**Mealy Machine –**

- Output depends on present state as well as present input.
- If input changes, output also changes.
- Less number of states are required.
- There is less hardware requirement.
- They react faster to inputs.
- Asynchronous output generation.
- Output is placed on transitions.
- It is difficult to design.

## Recommended Posts:

- TOC | Conversion of Moore to Mealy machine (Set 4)
- TOC | Conversion of Moore to Mealy machine (Set 10)
- TOC | Conversion of Moore to Mealy machine (Set 9)
- Mealy and Moore Machines
- TOC | Moore and Mealy machines to produce 'A', 'B', 'C' depends on inputs that end with ’10’ or with ’11’ else other
- TOC | Moore and Mealy machines to count number of substring ‘ab’
- Turing Machine
- Construct a Turing machine for L = {a
^{i}b^{j}c^{k}| i< j< k; i ≥ 1} - Construct a Turing machine for L = {a
^{i}b^{j}c^{k}| i < j < k or i > j > k} - Construct Turing machine for L = {a
^{n}b^{m}a^{(n+m)}| n,m≥1} - Turing Machine for subtraction | Set 2
- Construct a Turing machine for L = {a
^{i}b^{j}c^{k}| i>j>k; k ≥ 1} - Turing Machine for addition
- Turing machine for subtraction | Set 1
- Construct a Turing machine for L = {a
^{i}b^{j}c^{k}| i*j = k; i, j, k ≥ 1}

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.