手动将代码从一种语言翻译成另一种语言

我经常在MATLAB / Python中编写代码来测试我的算法是否可行(并且实际上是可行的).然后我需要将整个代码转换为C,有时在FORTRAN90中.

将中型代码从一种语言手动转换为另一种语言的好方法是什么?

我试过了 :

>将整个代码一个转换为另一个,然后进行测试.
(有时会出现错误错误,这些错误错误不会消失,并且发现错误的来源会成为问题)
>逐行,逐行检查输出的一致性.
(太耗时)
>使用像f2c这样的转换器.
(根据我的经验,它们非常可怕.我链接到许多库,它们具有不同的函数调用C和Fortran)

也,:

>我非常熟悉我处理的编程语言,因此我不需要手册或参考指南(即我知道语法).
>我不是特别提出有关MATLAB和C的问题,而是作为翻译范例.
>关于尺寸,代码长度小于100行.
>我不想将一种语言的代码调用到另一种语言.请不要这么做.

解决方法

不同的语言需要不同的范例.你绝对不会以相同的方式编写和设计代码. Matlab,Python,C#或C.甚至对象层次结构也会根据语言而发生很大变化.

也就是说,如果您的代码包含几个相互关联的过程,那么您可以通过直接逐行转换(每种语言允许您编写两个或三个互连的函数,同时保持惯用).但这只适用于最简单的程序.

使用高级语言进行原型设计,然后以“生产”语言以健壮和干净的方式实现相同的想法是一种非常好的做法,但涉及两个非常不同的事情:

>您想要的任何语言的原型.测试,试验并说服自己这个想法是有效的.注重大局,不要注重表现,而要注重高层次的想法.还要注意在实施时遇到的困难,因为您将在第2步中再次面对它们.
>从头开始实施X语言的生产环境中的想法.它比你没有进行原型设计阶段更快,因为在第1阶段已经遇到了大部分困难.使用惯用X,并专注于正确性.注意角落情况,一般的健壮性,一旦它正常工作,性能.您会注意到大约一半的代码是由1中没有出现的新内容组成的(例如错误检查,角落案例处理,输入/输出,单元测试等).

你可以看到逐行翻译显然不是一个好主意,因为你没有翻译成同一个程序.

此外,当不进行原型设计时,我发现自己丢掉了第一个版本并制作了另一个我更喜欢的版本,即.我发现自己是原型!两次实施同样的事情并不是时间的浪费,这是正常的发展流程.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...