如何获得DART代码的向下编译版本

时间:2019-03-12 03:37:01

标签: dart

有没有办法为特定目标获取DART代码的向下编译版本?说以下为Dart VM编译的代码。

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

names.forEach(print);

1 个答案:

答案 0 :(得分:3)

Dart无法编译为Java字节码或DotNet IL之类的东西。

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

https://mrale.ph/dartvm/

  

名称“ 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