虽然我理解模拟和模拟的一般含义,但我几乎总是对它们感到困惑。假设我创建了一个模仿现有硬件/软件的软件,我应该如何称呼它?模拟器还是模拟器?

有人能从编程的角度来解释一下吗?

福利:这两个词在英语中有什么区别?(对不起,我的母语不是英语:))


当前回答

几年前,我想出了一个非常简短的格言,我相信,它很好地抓住了差异的本质:

模拟器是执行任务的模拟器。

我的意思是,当你不能使用真正的东西时,你可以使用模拟器,当你不能使用真正的东西时,你可以使用模拟器,当你想找到一些关于它的东西时。

其他回答

仿真器是一个系统的模型,它可以接受被仿真系统可以接受的任何有效输入,并产生相同的输出或结果。所以你的软件就是一个模拟器,只要它能精确地再现被仿真系统的行为。

用比较正常的说法来说:如果你的软件能做被模仿系统能做的所有事情,那么它就是一个模拟器。如果它只是近似于系统(it或其他)的结果,那么它就是一个模拟器。

在计算机科学中,模拟和仿真都从相同的输入产生与原始系统相同的输出;但是,仿真也使用相同的过程来实现它,并且由相同的材料制成。模拟使用与原始系统不同的进程。同样值得注意的是术语复制,它是两者的中间——使用相同的过程,但由不同的材料制成。

所以如果我想在我的PC上运行我的旧《超级马里奥兄弟》游戏,我会使用SNES模拟器,因为它使用相同或类似的计算机代码(进程)来运行游戏,并使用相同或类似的材料(硅芯片)。 然而,如果我想在我的个人电脑上驾驶波音747喷气式飞机,我会使用飞行模拟器,因为它使用的过程与原来的完全不同(没有实际的机翼、升力或空气动力学!)。

以下是摘自计算机科学术语表的准确定义:

模拟是一种系统模型,它捕捉了系统输入和输出之间的功能连接,但不一定基于与系统本身相同或相似的过程。

复制是一种系统模型,它捕获系统输入和输出之间的功能连接,并基于与系统本身相同或相似的过程。

仿真是某种系统的模型,它捕获系统输入和输出之间的功能连接,基于与该系统相同或类似的过程,并且由与该系统相同的材料构建。

参考文献:The Open University, M366 Glossary 1.1, 2007

模拟=用于分析和研究

模拟=作为替代品使用

模拟器是模拟环境,而模拟器是复制原始设备或系统上的使用情况的环境。

模拟器模拟它所模拟的事物的活动。它“看起来”(根据上下文,很多人都可以用这个“看起来”)与被模拟的事物相同。例如,对用户来说,飞行模拟器“看起来”是一次真实的飞行,尽管它并不能将你从一个地方运送到另一个地方。

另一方面,模拟器实际上“做”被模拟的事情,在这样做的时候,它也“看起来在做同样的事情”。仿真器可以使用不同的协议集来模拟被仿真的对象,但结果/结果总是与原始对象相同。例如,EMU8086模拟计算机上的8086微处理器,显然它不是在8086上运行的(=不同的协议),但它给出的输出是真正的8086所给出的。

这个问题最好的答案可能是看一看历史实践。

在过去,我曾在PlayStation和SEGA的PC上看到过游戏主机模拟器。

模拟器是指那些试图模拟现实生活行为的软件,比如驾驶或飞行。《Gran Turismo》和《微软飞行模拟器》都是模拟游戏的经典例子。

就语言差异而言,模仿通常指的是模仿某人(或某事)值得称赞的特征或行为。仿真与模仿是不同的,模仿是为了嘲弄而复制一个人。

动词“simulation”在语言学上的意思基本上是假装或模仿某人或某事。