Programming languages 如何从Squeak环境运行外部代码?

Programming languages 如何从Squeak环境运行外部代码?,programming-languages,interface,smalltalk,Programming Languages,Interface,Smalltalk,据我所知,Squeak环境与操作系统的其余部分非常隔离。然而,我正在寻找一种执行外部代码的方法,这些代码将从内部以不同的语言编写。我们需要它来连接到旧的代码库 这可能吗?我有哪些选择?我想你正在寻找的是你基本上有三个选择: 编写一个插件:您可以使用包含称为“原语”的C函数的模块扩展Squeak VM,然后可以从Squeak代码中使用这些函数。原语是Squeak代码与外部世界的接口方式(例如,用于访问文件、互联网或播放声音)。您可以将插件链接到任何库,这样就可以与任何具有C绑定的语言进行接口 使用

据我所知,Squeak环境与操作系统的其余部分非常隔离。然而,我正在寻找一种执行外部代码的方法,这些代码将从内部以不同的语言编写。我们需要它来连接到旧的代码库


这可能吗?我有哪些选择?

我想你正在寻找的是

你基本上有三个选择:

  • 编写一个插件:您可以使用包含称为“原语”的C函数的模块扩展Squeak VM,然后可以从Squeak代码中使用这些函数。原语是Squeak代码与外部世界的接口方式(例如,用于访问文件、互联网或播放声音)。您可以将插件链接到任何库,这样就可以与任何具有C绑定的语言进行接口
  • 使用FFI:外部函数接口是从库中调用C函数的通用方法。这很难在多个平台上正常工作,但您不需要像构建插件那样使用C编译器,也不需要将插件分发给用户
  • 使用OSProcess:此包允许您调用外部可执行文件并通过stdin/stdout进行通信
    编写一个插件是最灵活和高性能的选择,但不是微不足道的。OSPROST是最简单的,FFI在中间。你能把你的答案扩展到包含有用的内联信息吗?@MetaFight不,我不知道OSProcess,但知道它存在。所以我尽可能多地回答。然后伯特作了更多的解释。这是答案到达时间和答案本身质量之间的差异