为吉林大学完成一套Matlab转写成Fortran/C++语言的大型程序

责任编辑:济南快创软件IT部

根据吉林大学的要求,将一套几万行代码量的Matlab程序转写成Fortran和C++语言,要求保证相同输入条件下转写前后的运行效果完全一致。本次转写任务的难点在于,转写前的原Matlab程序使用了大量内置函数,比如卷积、B样条曲线插值等数学算法程序,Matlab并没有公布这些算法程序的代码,只能依靠我们程序员自身的数学功底自行编写能达到相同功效的Fortran/C++程序代码。在经过近两个月的艰苦攻坚,我公司终于顺利交付给客户满足全部转写要求的一套大型Fortran/C++程序,并开具增值税发票给客户。

我公司完成过大量C/C++/C#/Matlab/Fortran/VB/R语言/Python/Java等编程语言之间的相互转换转写任务,这类软件开发任务的难点在于程序员要首先熟练掌握多种编程语言,能够完全领会同一种功能在这几种语言下的不同写法,精心调试以保证转写前后的程序执行效果必须完全一致,实现的难度还是很大的。

在两种语言间转换通常可以分为三个独立的阶段:手动语法转换、修复转换错误导致的bug、将代码转换成目标语言惯用的方式。有一些工具可以自动从一种语言转换为另一种语言,它们可以帮助解决一些问题,但只能停留在第一步。第二步和第三步的问题仍然存在,并且可能需要比手动转换代码带来更多的工作,因为通常手动转换会写出更多的人性化的代码。将代码从一种格式手动转换为另一种格式是你难以想象的最无聊的、耗费精力的和怀疑人生的工作,需要软件开发人员高度集中注意力,当出现运行结果不一致时还需要返回去找遍所有可能造成这类逻辑错误的地方,逐一排查后修复。