微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

我试过了 :

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

也,:

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

解决方法

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

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

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

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

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

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

原文地址:https://www.jb51.cc/c/110833.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐