我有这个遗留代码库(Compaq PERL),大约1500行代码,我需要移植到Windows。我想使用 gnu PASCAL (我已经安装并且有效)。我已经将汇编程序(HP 64000 8051)从VAX中移除到 Windows(KEIL 8051)。
软件工程总监希望将所有产品从VAX中删除。这就是问题,我尝试使用 gpc 从CYGWIN上的VAX编译 PASCAL 。似乎有很多事情需要做,以便从一个PASCAL到另一个PASCAL获得(IO和算法)等价。
我比较熟悉PERL,FORTRAN,C和C ++(和JAVA,但我不愿意)。我的问题归结为使用1500行代码将PASCAL代码移植到另一个PASCAL会更有效率,还是将它移植到另一种语言会更高效? VAX PASCAL是我在大学时的第一语言,但我在8年内没有积极地编程。我经常和专业地使用PERL,C,C ++和FORTRAN。
我会说,就我的选择而言,如果我要转换成另一种语言,PERL会是它。
代码的作用是执行INTEL hex和TEX HEX图像文件的填充和校验和。我知道Srec 1.4程序可以工作,但它不是一个选项,因为我必须让我的代码符合DO-178B(而且我的公司对使用开源代码很谨慎)(他们没有打开的问题)源工具;只是代码)。
答案 0 :(得分:2)
我会尝试将其移植到Free Pascal,但有时间限制。如果它太难了,那么就回到最近使用的(由你)语言。
有没有办法测试新的(移植或翻译)版本是否与旧版本相同?
答案 1 :(得分:0)
我认为将1500行代码移植到任何语言/平台应该不会太难,因为您需要做的就是“执行填充”和计算校验和。我个人更喜欢C# - 它在我的脑海中有一种舒缓的效果:)但是考虑到你对C / C ++的熟练程度,我会建议你使用C ++,原因很简单,C ++是世界上最好的汇编语言,可以满足你的要求完美。我认为pascal是一些过时和新项目应该避免的。如果我错了,请随时纠正我。
C语言编程是一件苦差事,为程序的进一步增强留下了一些空间C ++似乎是最好的选择。另外不要忘记与C不同,C ++有一些非常强大的库支持它(STL,Boost等)。
答案 2 :(得分:0)
我首先会考虑长期可维护性(包括除您以外的其他人)。例如,如果您是唯一知道PASCAL并且您不想成为维护和支持此程序的唯一所有者,那么PASCAL可能不如具有更广泛开发人员基础的语言更好。在你的店里。
如果这不是一个决策问题(例如,多个开发人员同样熟悉相同的语言范围),那么我估计gnu PASCAL端口的时间为例如使用Perl端口并使用目标语言,这将花费更少的时间来使用。
如果这也不是一个决策问题(即相同的努力程度),那么我会考虑运行时经济性(更高的速度,更小的内存占用)。
答案 3 :(得分:0)
鉴于它只有1500行代码,并且虽然Pascal有许多优点I / O不是其中之一,但我会把整个事情移植到C,将其分解为模块并编写一些单元测试。办法。移植到一个新的Pascal,有一个很大的“未知因素”,即不同方言的兼容性。如果你将它移植到C,你会在第一天结束时知道这项工作需要多长时间,一旦你完成它,你就会完全固定它,因为C会比我们所有人都活得更长。我同意Joel Neely的意见;总是很容易找到另一个C程序员来维护它。
因为程序太小而且主要是I / O和整数操作,所以我在这里看不到C ++的作用。不值得额外的复杂性。
答案 4 :(得分:0)
我总是尝试用公司主要使用的语言尽可能多地编写程序。
如果有六个程序员坐在公司里做C ++,那么采用一种脚本语言(因为它更容易片段化)是没有意义的,这增加了下一次聘用的语言要求。
就个人而言,我对Perl感到不满,因为语法稍微有点加密。此外,它不是一种“公司”语言,特别是不在这里,在Unix系统管理员角落之外很难找到真正精通它的人(*)
请注意,这只是我目前观点的一种写作,这主要是一家小型商店的程序员,其中大型商业客户迫使他们在我们身上进行操作。 YMMV。
(*)webdevels在这里主要做ASP.NET。