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

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

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


当前回答

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

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

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

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

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

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

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

其他回答

模拟=用于分析和研究

模拟=作为替代品使用

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

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

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

模拟器是真实系统的替代品,但模拟器用于优化、理解和估计真实系统。

模拟器:类似于解释器。 也就是说,它实际上逐行执行真实的代码来模拟行为

模拟器:类似于可执行文件。 也就是说,它接受编译后的代码并执行它。

模拟是一种行为类似于其他事物,但以完全不同的方式实现的系统。它提供了系统的基本行为,但不一定遵守被模拟系统的所有规则。它的存在是为了让你了解事物是如何工作的。

模拟是一种行为完全类似于其他系统的系统,并且遵守所模拟系统的所有规则。它实际上是另一个系统的完全复制,甚至与仿真系统的输入和输出二进制兼容,但在与原始仿真系统的环境不同的环境中运行。规则是固定的,不能更改,否则系统会失败。

词语的定义最好地描述了差异。谷歌搜索给出了以下模拟和仿真的定义:

模仿…的外表或特征。

模仿,赶上或超越(某人或某项成就),通常是通过模仿。

仿真模拟一个系统。仿真可以很好地模拟一个系统,从而可以取代它,甚至可能超过它。

在计算中,模拟将是它所模拟的系统的替换。通常情况下,它甚至会超越它所模仿的系统。例如,游戏控制台模拟器通常会做一些改进,比如更好的硬件兼容性、更好的性能和更好的音频/视频质量。

另一方面,模拟由于是模型而受到限制。它们是模拟系统的最佳尝试,而不是系统的替代品。有硬件模拟器,因为硬件可以被模仿,而且很难区分。没有种植模拟器,因为没有仿真可以取代实际的种植。我们只能模拟一种耕作模式,以了解如何更好地耕作。