有没有办法为特定目标编译 dart 代码的下版本?下面是为 Dart VM 编译的代码。
我是 Dart 新手,经常遇到高级抽象代码,并想知道它是如何在 VM 中翻译的。
names.forEach(print);
Dart 不会被编译成 Java 字节码或 DotNet IL 之类的东西。
Dart 由 VM 提前 (AoT) 或及时 (JiT) 编译为机器代码
“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
| 归档时间: |
|
| 查看次数: |
298 次 |
| 最近记录: |