gpt4 book ai didi

compilation - 将 Pharo 编译为 C?

转载 作者:行者123 更新时间:2023-12-05 01:00:48 25 4
gpt4 key购买 nike

据说 Pharo 的 VM (CogVM) 是在 Smalltalk 中开发、测试、分析等的,但随后 Smalltalk 代码被转编译为 C,然后使用默认的系统 C 编译器与一些操作系统抽象 C 代码一起编译。

好吧,我想做一个类似的事情,我不想使用 Pharo 开发、测试和分析代码,但是然后将其编译为 C。我该怎么做?编译到 C 是如何工作的? Pharo 是否带有 Smalltalk 到 C 的编译器?我怎样才能调用它?它是否编译完整的 Smalltalk,或者我必须使用某种 Smalltalk 子集?有没有关于它的好的文档?

最佳答案

Pharo VM 是 hosted on github .
按照步骤构建它,您将获得一个名为“generator.image”的 Smalltalk 图像,您可以运行它(它是一个常规图像)。在该图像中,您会找到 VMMaker 包,它负责从用于此的特殊 Smalltalk 方言(称为 Slang;它是 Smalltalk 的子集)生成 C 代码。查看生成器图像中的代码以了解它的作用。首次打开图像时打开的工作区中还包含一些信息。
只要你有 C 源代码,它基本上就是直接的 C 编译(我们用 Cmake + gcc/clang 来做)。
至于文档:您可能应该阅读 Blue Book .
澄清
正如@Leandro Caniglia 在评论中指出的那样,Slang 的目的是为 VM 生成 C 源代码。它旨在简化到 C 的转换。那 意思是:

  • 可以使用生成机制将任意 Smalltalk 代码转换为 C 语言
  • 可以用 Slang 重写任意 Smalltalk 代码(至少不是“容易”)
  • 关于compilation - 将 Pharo 编译为 C?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28967423/

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