关于从非常不相关的语言(在本例中是Scheme到Python)中翻译代码的建议?

Mic*_*ael 5 python scheme code-translation

推理:我正在尝试将一个大型库从Scheme转换为Python

进行这种转换有什么好的策略吗?特别是在这种情况下的跨范式,因为Python更多是OO而Scheme是功能性的.

完全主观所以我正在制作社区维基

Vic*_*cky 7

我会将原始语言实现看作是一个需求规范,并根据它编写一个设计(最重要的是包括详细的接口定义,包括外部接口和库中模块之间的接口定义).然后我会从那个设计中实现.

我绝对不会做的是任何一种逐个功能的翻译.


小智 6

使用方案实现作为生成测试用例的方法.我写了一个函数,可以调用方案代码,并读取输出,将其转换回python.

这样,您可以编写如下所示的测试用例:

def test_f():
  assert_equal(library.f(42), reference_implementation('(f 42)'))
Run Code Online (Sandbox Code Playgroud)

这并不能帮助您翻译库,但它会让您非常自信您所拥有的内容可以提供正确的结果.

当然,根据计划的作用,它可能不会像这样简单......