如何获得 dart 代码的编译版本

Vai*_*van 2 dart

有没有办法为特定目标编译 dart 代码的下版本?下面是为 Dart VM 编译的代码。

我是 Dart 新手,经常遇到高级抽象代码,并想知道它是如何在 VM 中翻译的。

names.forEach(print);

Gün*_*uer 5

Dart 不会被编译成 Java 字节码或 DotNet IL 之类的东西。

Dart 由 VM 提前 (AoT) 或及时 (JiT) 编译为机器代码

https://mrale.ph/dartvm/

“Dart VM”这个名字是有历史意义的。从某种意义上说,Dart VM 是一种虚拟机,它为高级编程语言提供了执行环境,但这并不意味着 Dart 在 Dart VM 上执行时始终是解释型或 JIT 编译型的。例如,Dart 代码可以使用 Dart VM AOT 管道编译为机器代码,然后在 Dart VM 的剥离版本中执行,称为预编译运行时,它不包含任何编译器组件,并且无法动态加载 Dart 源代码。

Dart 2 使用内核 AST,但由通用前端 (CFE) 生成

不过 Dart 语言发生了一些抽象

https://github.com/dart-lang/sdk/blob/master/pkg/kernel/README.md

Dart Kernel 是一种源自 Dart 的小型高级语言。它被设计用作整个程序分析和转换的中间格式,并由代码生成和执行后端使用。

内核语言在 Dart 中具有内存表示形式,并且可以序列化为二进制或文本。

内核语言及其实现都不稳定并且正在开发中。

另请参阅https://github.com/dart-lang/sdk/blob/master/pkg/kernel/binary.md