In a conventional finite state machine (FSM) there are no data parameters in the inputs nor outputs. An EFSM adds data to an FSM where it needs to add statevars and several functions related to data:

- enabling/guard functions : an expression over the input parameters and statevars to decide whether a transition is enabled
- update functions : whenever a transition is taken the update function calculates new values for the statevars
- output functions : whenever a transition is taken the output function calculates new values for the output parameters

Note: for every FSM like DFA,NFA,Moore,Mealy,IA,IOA we can make an EFSM variant with data.

**Source:** http://www.wikiwand.com/en/Extended_finite-state_machine extended with symbolic input and output parameters

A Mealy EFSM is a 8-tuple **M = (I,O,S,V,F,U,P,T)**

**S**is a set of symbolic states,**I**is a set of input symbols with symbolic parameters, where for each input symbol**i**we have a set of symbolic input parameters**P**_{i}**O**is a set of output symbols with symbolic parameters, where for each output symbol**o**we have a set of symbolic output parameters**P**_{o}**V**is set of n symbolic statevars**v**_{i}... v_{n}**D**is an n-dimensional linear space_{V}**D**for the valuation of the statevars_{1}x ... x D_{n}**V**,**D**is an m-dimensional linear space_{i}**D**for the valuation of the set of symbolic input parameters_{1}x ... x D_{m}**P**of input_{i}**i**,**F**is a set of*enabling functions***f**,_{k}: D_{i}x D_{V}-> {0,1}**U**is a set of*update functions***u**for updating the valuation of the statevars_{k}: D_{i}x D_{V}-> D_{V}**V**,**P**is a set of*output functions***p**, where_{k}: D_{i}x D_{V}-> D_{p}**D**is the lineair space of the output parameter_{p}**T**is a transition relation**T : S x F x I -> S x U x O x P**,

The operational semantics of an Mealy EFSM is a Mealy machine in which the states are pairs of a symbolic state and a valuation of the state variables. A transition may fire for given input values and current state variables valuation if its guard (**F**) evaluates to true. In this case, a new valuation of the state variables is computed using the update part of the transition(**U**), and also new valuation of the output parameters is computed using the output part of the transition(**P**).

A Moore EFSM is a Mealy EFSM with a change to the output function :

**P**is a set of*output functions***p**, where_{k}: D_{V}-> D_{p}**D**is the lineair space of the output parameter_{p}

That is the output only depends on the current symbolic state and the calculation of the valuation of the output paramaters only from the valuation of the state variables.