gpt4 book ai didi

f# - 构建在JVM上运行并生成Java字节码的F#编译器的最简单方法是什么?

转载 作者:行者123 更新时间:2023-12-03 08:40:14 33 4
gpt4 key购买 nike

当前的F#编译器是用F#编写的,是开源的,可以在.Net和Mono上运行,从而使其可以在包括Windows,Mac和Linux在内的许多平台上执行。 F#的Code Quotations机制已用于在WebSharperPitFunScript等项目中将F#编译为JavaScript。运行F# code on the JVM似乎也引起了一些兴趣。

我相信OCaml compiler的版本最初是F#编译器的Bootstrap

如果有人想要构建在JVM上运行的F#编译器,则更容易执行以下操作:

  • 修改现有的F#编译器以发出Java bytecode,然后用它编译F#编译器?
  • 使用像Yeti这样的基于JVM的ML编译器在JVM上引导最小的F#编译器吗?
  • 由于fjord项目似乎正在尝试用Java从头开始重写F#编译器?
  • 还有别的吗?
  • 最佳答案

    可能应该考虑的另一种选择是将.NET CLR字节码转换为JVM字节码,就像http://www.ikvm.net对JVM> CLR字节码所做的那样。尽管这种方法一直是considered and dismissed by the fjord owner

    从选项1)的顶部获得买入,并让F#编译器团队具有可插入的后端,这些后端在理论上可以发出Java字节码声音,就像它将产生最优美的解决方案一样。

    但是,如果您查看已移植到不同平台的其他语言,则情况很少。在大多数情况下,它是从头开始重写的。但这也可能是由于原始语言团队对自己支持替代平台不感兴趣,并且原始宿主实现可能无法支持多个后端,并且从此开始已经太慢了,因此不可行。 。

    我的直觉是从头开始重写,并能够从原始实现中进行尽可能多的代码共享和自动化。例如。如果测试套件可以同时用于这两种实现,则将减轻JVM端口的负担,并在确保语言均等方面大有帮助。

    关于f# - 构建在JVM上运行并生成Java字节码的F#编译器的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15731724/

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