gpt4 book ai didi

compiler-construction - 适用于 Linux 的具有读取-评估-打印循环的快速标准 ML 编译器或字节码解释器?

转载 作者:行者123 更新时间:2023-12-04 05:59:13 24 4
gpt4 key购买 nike

为了与我将要教授的类(class)一起使用,我正在寻找用于标准机器学习的快速编译器或字节码解释器。 我正在寻找快速编译时间; 任何合理的运行时间都可以。如果编译模型简单明了,那就更好了。类里面的学生还将使用 MLton 生成好的二进制文件,但 MLton 编译速度慢,有时学生需要可以与之交互的东西。

这是我已经知道的:

  • New Jersey的Standard ML有一个交互式的read-eval-print-loop,但是它的编译规则有点奇怪,而且有点慢。不过,它可能是领先的竞争者。
  • 莫斯科 ML 曾经是理想的,但它仍然没有更新到 2004 年的标准基础库。最不幸的是,除了许多其他优良特性之外,Moscow ML 还有一个交互式帮助系统——但我不能让我的学生使用一个编译器,其库的功能与所有在线文档所说的不同。
  • Poly/ML 可能很符合要求,除了查看在线文档之外,我不知道如何编译它。那可能没问题。

  • 目前看来,SML/NJ 或 Poly/ML 是最好的折衷方案。我已经很多年没有在标准机器学习方面做过任何认真的工作了,我欢迎有关其他编译器的信息,或者根据您的经验,这些替代品中哪一个是交互最快且最容易学习使用的。

    最佳答案

    Poly/ML 似乎比 SML/NJ 快一点。例如编译HaMLet (大约 25850 行注释 SML)与 Poly/ML、SML/NJ 和 MLton,我得到以下信息:

    [mtf@fenrir hamlet-1.3.1.polyml]$ /usr/bin/time make with-poly
    ...
    2.92 real 2.31 user 0.55 sys
    [mtf@fenrir hamlet-1.3.1.smlnj]$ /usr/bin/time make with-smlnj
    ...
    11.98 real 11.08 user 0.78 sys
    [mtf@fenrir hamlet-1.3.1.mlton]$ /usr/bin/time make with-mlton
    ...
    24.51 real 21.04 user 3.05 sys

    在编译 MLton(大约 175779 行注释 SML)时,Poly/ML 和 SML/NJ 之间的区别并不那么明显:
    [mtf@fenrir mlton.polyml]$ /usr/bin/time make polyml-mlton
    ...
    117.67 real 112.12 user 4.87 sys
    [mtf@fenrir mlton.smlnj]$ /usr/bin/time make smlnj-mlton
    ...
    123.31 real 116.24 user 6.38 sys
    [mtf@fenrir mlton.mlton]$ /usr/bin/time make mlton-compile
    ...
    238.44 real 232.01 user 5.49 sys

    作为 REPL,Poly/ML 和 SML/NJ 几乎是等价的。我发现来自 SML/NJ 的错误信息要好一些;他们往往有更具体的来源位置。当然,当用作 REPL 时,SML/NJ 的源位置以 stdIn 表示。 ,对于这些行号并不是很有帮助。

    如果您的学生只打算使用 REPL 或编译单文件程序,那么我想 Poly/ML 或 SML/NJ 都可以满足您的目的。两者都提供 SML use功能。多文件程序可能最好由 SML/NJ 的编译管理器或 MLton 的 ML 基础系统提供; Poly/ML 提供了另一个编译系统( PolyML.make ),但我从未使用过它。

    编译 Poly/ML 有什么困难?从 5.0 版本开始,Poly/ML 支持了一个简单的 ./configure ; make ; make install build 。使用 Poly/ML 5.X 编译独立的可执行文件需要使用 PolyML.export并调用 C 编译器,但在 5.0 版发行说明中得到了很好的描述。

    关于compiler-construction - 适用于 Linux 的具有读取-评估-打印循环的快速标准 ML 编译器或字节码解释器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3191387/

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