是否有一种方法可以对特定目标的dart代码进行编译?假设以下为Dart VM编译的代码。
我对Dart很陌生,经常遇到高级抽象代码,我想知道它是如何在VM中翻译的。
names.forEach(print);
发布于 2019-03-12 09:16:34
Dart没有编译成类似或DotNet IL的代码。
Dart是由VM预先编译成机器代码(AoT)或刚好及时(JiT)。
名称"Dart VM“是历史的。Dart VM是一个虚拟机,从某种意义上说,它为高级编程语言提供了一个执行环境,但它并不意味着在Dart VM上执行时始终会对Dart进行解释或JIT编译。例如,可以使用Dart VM AOT管道将Dart代码编译成机器代码,然后在Dart VM的剥离版本(称为预编译运行时)中执行,该版本不包含任何编译器组件,无法动态加载Dart源代码。
Dart 2使用内核AST,尽管它是由公共前端(CFE)生成的。
不过,有一些来自Dart语言的抽象。
https://github.com/dart-lang/sdk/blob/master/pkg/kernel/README.md
Dart内核是从Dart派生出来的一种小型高级语言.它被设计成用于整个程序分析和转换的中间格式,并被码元和执行后端所消耗。 内核语言在Dart中具有内存中的表示形式,可以被序列化为二进制或文本。
内核语言及其实现都是不稳定的,正在开发中。
另见https://github.com/dart-lang/sdk/blob/master/pkg/kernel/binary.md
https://stackoverflow.com/questions/55113761
复制相似问题