The first question regarding the difference between simulator and emulator I encountered in my undergraduate class of computer organization and architecture. The lecturer gave the difference in the aspect of completeness. But, ever since I had been wondering about the difference. Therefore, today I decide to round up the difference based on my own life experience of using simulator and emulator.
Simulation is the imitation of another environment. For example, a flight simulator imitates the environment of flying an airplane in a little room. The true environment of flying is experienced in another environment that lacks some aspects like the possibility to die from a plane crash. So, simulation usually involves an environment and a person. Well, if not a person, another object. For example, a savanna simulator may include a lion to see how the lion will react to a certain condition. About simulation, you usually says: "I want to know how this person/animal/plant/object reacts in a particular environment".
Emulation is the imitation of an object as another object. For example, a PlayStation emulator makes PlayStation game CDs recognize a PC as the machine where they are intended to run. Another example, a man puts on fake breasts, wear woman clothing and soften his voice to emulate a woman. So, basically an emulation has a purpose to make its environment recognize an object as another object. This is why emulator needs to be complete. If, for example, the man emulating a woman fails to emulate a woman completely like urinating while standing, he will be found out not to be a woman. About emulator, you usually says: "I want to make this stuff be recognized as that stuff so that another thing that I have in mind will continue to interact with the emulated stuff in the way it interacts with the real stuff".