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

前端之家收集整理的这篇文章主要介绍了手动将代码从一种语言翻译成另一种语言前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我经常在MATLAB / Python中编写代码来测试我的算法是否可行(并且实际上是可行的).然后我需要将整个代码转换为C,有时在FORTRAN90中.

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

我试过了 :

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

也,:

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

解决方法

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

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

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

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

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

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

猜你在找的C&C++相关文章