有没有办法为特定目标获取DART代码的向下编译版本?说以下为Dart VM编译的代码。
我是Dart的新手,经常遇到高级抽象代码,想知道如何在VM中翻译它。
names.forEach(print);
答案 0 :(得分:3)
Dart无法编译为Java字节码或DotNet IL之类的东西。
Dart由VM提前(AoT)或及时(JiT)编译为机器代码
名称“ Dart VM”是历史名称。 Dart VM是 感觉它为高层提供了执行环境 编程语言,但这并不意味着Dart始终是 在Dart VM上执行时解释或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