type
status
date
slug
summary
tags
category
icon
password

运行时这个概念可以分为三种含义.

一. 程序运行的时候: 程序生命周期中的一个阶段. 比如: Rust 比 C 更容易将错误发现在编译时而非运行时。
解释: compile time -> link time -> run time
二. 运行时库: 即 glibc 这类原生语言的标准库。例句:C 程序的 malloc 函数实现需要由运行时提供。
某些语言特性无法直接映射到系统调用和汇编指令的常用功能,对于这些功能就需要使用运行时库(比如 glibc)实现.
对于 go, 有一个 runtime 的库, 实现了go 的 gc,并发, 堆栈管理等特性, 类似 libc.
应用程序, 运行时库和 os 的关系
notion image
三. 运行时环境, 某门语言的宿主环境, 比如: Node.js 是一个 JavaScript 的运行时。
比如 java的 jvm, c#的 CLR, js 的 v8,一般来说,高级语言的运行时环境包括: 1. 解释执行字节码的虚拟机, 多数带 gc 2. 编译器前端做此法语法分析 3. JIT 优化带编译器后端 4. IO 能力
go 运行时不包括运行时环境, go 程序会被提前编译成机器代码, 因此, 对于 go 来说, 运行时只是指代提供关键服务库的名称. rust 宣称的没有运行时, 同样也是没有单独的运行时环境, 内存管理在编译时期已经确定
 
七十年代graphQL + ent构建和维护应用程序和大数据模型(2) - grpc