我有一个通用术语问题。何时将一段代码或工具包视为“引擎”?
例如,Google 的 Javascript 解释器被称为“V8 引擎”,或者 Unreal 的渲染器被称为“Unreal Engine”。框架或一组算法是否有特定的点(大小、复杂性、目的或其他)被正式视为引擎?
我有一个通用术语问题。何时将一段代码或工具包视为“引擎”?
例如,Google 的 Javascript 解释器被称为“V8 引擎”,或者 Unreal 的渲染器被称为“Unreal Engine”。框架或一组算法是否有特定的点(大小、复杂性、目的或其他)被正式视为引擎?
引擎是一个类比。通常,软件引擎运行另一层代码。
软件引擎的一个特点:它并不意味着独立存在。它提供马达……但留给你制造一辆成品车。
不。当事物的创建者想要称它们为引擎时,它们被称为引擎。
我想说,如果你为一个完整的任务(比如解释 javascript 或渲染 3d 图形)创建一个 API,那么你可以称它为引擎。但是没有确切的定义。这更像是一种为你所创造的东西找到一个合适的词的方法。框架也是如此。
这有点武断,但我见过的所有软件引擎都有一个共同点,那就是运行任意代码的能力。V8(javascript)和虚幻引擎(unrealscript)当然是这样。它们与 VM 的不同之处在于它们不像 JVM 那样定义抽象机器。解释器通常也不符合要求,V8 JIT 编译它不解释任何东西,而 Unreal 所做的远不止解释 unrealscript。