Iris Classon
Iris Classon - In Love with Code

Stupid Question 131: What is the difference between a simulator and an emulator?

[To celebrate my first year of programming I will ask a ‘stupid’ questions daily on my blog for a year, to make sure I learn at least 365 new things during my second year as a developer]

What is the difference between a simulator and an emulator?

I have to admit, I’ve been using these two words interchangeably a few times. Not really because I didn’t understand there was a difference, but because I wasn’t quite sure of the difference – and if it mattered.

So what is the difference?
A simulator simulates the original- so it looks and behaves like the real thing on the surface, but without actually replicating how the original really works internally.
An emulator on the other hand mimics the original, and also its inner workings which – in theory anyway- should make it more close to the real thing. It kind of recreates the original – instead of simulating it / faking it.

Lost looking at the definition of the words should indicate the difference:

Definition Emulate:

  1. To strive to equal or excel, especially through imitation
  2. To compete with successfully; approach or attain equality with.
  3. Computer Science To imitate the function of (another system), as by modifications to hardware or software that allow the imitating system to accept the same data, execute the same programs, and achieve the same results as the imitated system

Definition Simulate:
a. To have or take on the appearance, form, or sound of; imitate.
b. To make in imitation of or as a substitute for.
2. To make a pretense of; feign
3. To create a representation or model of (a physical system or particular situation, for example).

Recommendations are that you always try on an actual device, but the simulator might leave you with more surprises if you don’t. Probably not good ones.

Here are a few good discussions :
What’s the difference between emulation and simulation?
What’s the difference between simulation and emulation


Leave a comment (via email)

Last modified on 2013-01-20