[转帖]Runtime, Engine, VM 的区别是什么?
这就是个WiFi和WLAN关系的问题嘛。
Runtime是指用于支持程序运行时的组件,它可以是个Engine和/或VM。
VM是一种系统抽象,它提供代码执行所需的API环境。Engine是一种处理抽象,它负责将代码变为底层可执行代码。
一个运行时,可以是VM和Engine中的一种,也可以同时是两者。当然也可以两者都不是。
以题主的例子而言,V8是JS的Engine,但同时它也提供了环境,所以它也是VM。
JVM是Java的VM,但它也负责代码的转换,所以它也是Engine。
之所以习惯上JS的称Engine,是因为JS最初并没有明确的VM概念,也就是说它并没有明确地定义一套环境。而Java的称VM,也是因为早期JVM要强调它提供了环境,而不光光用来解释代码。
至于其他的还有一些例子:
VC++ Runtime,它提供了API环境,但它并不抽象系统,也不翻译代码,所以它是另一种Runtime。类似的还有VB Runtime和MFC。
.Net Framework,它提供了API,抽象了系统,翻译代码,之所以叫它Framework大概是为了显得大气。
作者:沈万马
链接:https://www.zhihu.com/question/34634496/answer/59537636
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
转载于:https://www.cnblogs.com/jinanxiaolaohu/p/10648736.html
[转帖]Runtime, Engine, VM 的区别是什么?相关推荐
- labview runtime engine 系列下载
本人有labview runtime engine系列的软件包,如下图所示: labview runtime engine 5.1 labview runtime engine 5.1.1 labvi ...
- 高级语言虚拟机(HLL VM)的设计与实现
为什么80%的码农都做不了架构师?>>> 关注各种高级语言虚拟机(high-level language virtual machine,HLL VM)的设计与实现,泛化至各种 ...
- 关注各种高级语言虚拟机(high-level language virtual machine,HLL VM)的设计与实现,泛化至各种高级语言的运行时的设计与实现,也会涉及动态编译、GC、动态语言的编
关注各种高级语言虚拟机(high-level language virtual machine,HLL VM)的设计与实现,泛化至各种高级语言的运行时的设计与实现,也会涉及动态编译.GC.动态语言的编 ...
- App Engine中的Google Services身份验证,第1部分
这篇文章将说明如何构建一个简单的Google App Engine(GAE)Java应用程序,该应用程序可针对Google进行身份验证,并利用Google的OAuth授权访问Google的API服务( ...
- java runtime类 heap_Java 进阶(一) JVM运行时内存模型
1.JVM运行时数据区域的划分 a.程序计数器(Program Counter Register) 一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器.每个线程拥有独立的一个计数器,如果 ...
- [iOS] ios的runtime
1. 什么是runtime 运行时刻是指一个程序在运行(或者在被执行)的状态.也就是说,当你打开一个程序使它在电脑上运行的时候,那个程序就是处于运行时刻.在一些编程语言中,把某些可以重用的程序或者实例 ...
- GEE (Google Earth Engine)最基础代码学习笔记三
GEE (Google Earth Engine)代码学习笔记三 本次学习核心为:将JavaScript objects and primitives放入Earth Engine 容器传到服务器,并处 ...
- html5上传steam,Steam 上的 HTML5 Javascript Game Engine
不支持简体中文 本产品尚未对您目前所在的地区语言提供支持.在购买请先行确认目前所支持的语言. 购买 HTML5 Javascript Game Engine 关于这款软件 WEB GL ENGINE ...
- 基于google earth engine(GEE)下载研究区域影像
基于google earth engine(GEE)下载研究区域影像 当研究需要Landsat数据时,我们可以通过USGS官网或者地理空间数据云平台下载.由于地理空间数据云目前无法下载到较新的数据,可 ...
最新文章
- LOJ6435 PKUSC2018 星际穿越
- MVC中一个表单实现多个提交按钮(一个action搞定添删改)
- php-cgi和php-fpm,Windows环境下解决Nginx+php并发访问阻塞问题。
- 以太坊---「地址、密码、私钥、助记词、Keystore 」那些事
- BufferedReader和BufferedWriter读写文件
- 博为峰JavaEE技术文章 —— Hibernate域模型(2)
- 【HDU - 4348】To the moon(主席树,区间更新)
- word2vec python 代码实现_python gensim使用word2vec词向量处理中文语料的方法
- 《深入理解计算机系统》(2) 信息的表示和处理
- 自然语言处理 —— 2.5 学习词嵌入
- 采访拍摄镜头技巧_采访开放文化公司的6个技巧
- C 设计语言编译生成的是中间语言IL,一、源代码-面向CLR的编译器-托管模块-(元数据IL代码)...
- npm 与yarn CLI 命令比较
- Apache Calcite官方文档中文版-概览-1.背景
- Exception in thread main java.lang.NoClassDefFoundError: scala/Product$class
- 海康VisionMaster-脚本模块
- ResNet训练单通道图像分类网络(Pytorch)
- 2021年高处安装、维护、拆除复审考试及高处安装、维护、拆除模拟考试题
- [电路笔记]三相电路
- 使用TortoiseGit 进行cherry pick 操作