gpt4 book ai didi

scala - 我可以使用 Scala Native 作为我程序的库将包含 Scala 代码的字符串编译为机器代码吗?

转载 作者:行者123 更新时间:2023-12-04 17:33:09 25 4
gpt4 key购买 nike

我使用 Scala Native 成功地将 Scala 项目编译为机器代码。但我想在运行时生成一些可执行代码(我计划实现一个独立的编译器,从类似 scala 的语言到机器代码)。目标是拥有一种独立于 JVM 的自托管语言。是否可以通过某种方式将 Scala Native 编译器嵌入到我的项目中?

最佳答案

https://www.scala-native.org/en/v0.4.0/contrib/build.html 中所述,

  • Scala Native 的构建包含以下基于 JVM 的部分,其中第一、第三和第四部分似乎对于嵌入您自己的编译器中的 Scala Native 编译器是必需的:

The Scala Native sbt plugin and its dependencies (directory names are in parentheses). These are JVM projects.

  • sbtScalaNative (sbt-scala-native)
  • tools
  • nir, util
  • nirparser
  • testRunner (test-runner)

因此,正如 OP 的问题所寻求的那样,Scala Native 并不独立于 JVM。相反,研究 Scala Native 代码库的 NIR(scala-Native Intermediate Representation)部分可能表明一个点(在 NIR 向前发射附近的某处)分解出非 JVM NIR-to-LLVM 后端。然后 OP 的“自托管语言”将 NIR 编译为 LLVM IR 为机器代码“从类似 scala 的语言到机器代码”作为 OP 的问题寻求可能是可能的,因为从 Scala Native 代码库的一些后端提取/片段派生解析器,可能在 AST 之后,它依赖于 Scala(-proper) 的基于 JVM 的解析器,而从 NIR 开始在 JVM 中只是因为解析器和 AST 已经在 J​​VM 中。

关于scala - 我可以使用 Scala Native 作为我程序的库将包含 Scala 代码的字符串编译为机器代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57838475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com