有些对语言开发人员来说很有趣

Share ideas, strategies, and trends in the crypto database.
Post Reply
roseline371274
Posts: 944
Joined: Mon Dec 23, 2024 8:18 am

有些对语言开发人员来说很有趣

Post by roseline371274 »

查看 GraalVM,您会注意到它由几个项目/组件组成。有些对应用程序开发人员来说很有趣,。我们将重点介绍我们(应用程序开发人员)认为最有趣的组件

松露
Grail (JIT) 编译器
Substrate VM(提前编译)
Grail SDK
松露
“Truffle 是一个开源库,用于构建编程语言实现作为自修改 Coinbase 数据 抽象语法树的解释器。”

Truffle 是一个框架(API 和 DSL),可用于创建特定于语言的解释器,将您的应用程序代码编译为一个或多个抽象语法树(维基百科)。 AST 是对执行代码时可以运行的所有可能操作(节点)的解释。这些 AST 然后在 GraalVM 上运行,并最终作为实际的机器代码执行。

这很有趣,因为当你有自己的语言并且想要在 graal 这样的 VM 上运行它时,你只需要使用 Truffle 框架创建你的语言解释器。完成此操作后,您可以在 GraalVM 上运行您的语言。它还允许您在虚拟机优化机器代码时为其提供进一步的指令。高盛的 Jackie Haynes 的精彩演讲展示了当你拥有自己的语言(俚语)时实现 Truffle 的可能性。

圣杯
Truffle 是创建 AST 的解释器,而 Graal 是将 AST 编译为机器代码的即时编译器。将 Truffle 与 Graal 结合使用意味着您的语言由 truffle 解释、由 Graal 优化,并且它在 Java Hotspot JVM 上运行。性能优化非常有前景。对于像 Java 这样的优化语言来说,速度的提升是微不足道的。在流功能中可以发现一些性能的提升。然而,对于未优化的语言(例如 Ruby),速度的提升可能是巨大的。在后续的博客文章中,我们将深入了解 Graal 是什么以及它是如何工作的。

Substrate虚拟机
SubstrateVM 可能是 GraalVM 中讨论最多的组件之一。简而言之,“Substrate VM 是一个框架,它允许在封闭世界假设下将 Java 应用程序提前(AOT)编译为可执行映像或共享对象”。这意味着您可以创建无需虚拟机即可运行的本机可执行代码。启动代码时,它会直接在您的机器上运行,而无需任何 VM 解释。因此,快速启动和处理时间是最大的承诺之一。想象一个非常小的 Docker 容器,其中的 Java 代码已经预先编译好,或者使用原生 Java 镜像进行无服务器计算。在下一篇文章中,我们将解释 Substrate VM 的可能性和(当前)局限性。
Post Reply