如何将使用DEC Ada编写的应用程序迁移到Windows?

时间:2016-12-19 11:02:54

标签: windows ada openvms vax

我在OpenVMS DEC ADA环境中用Ada编写了一个批处理应用程序,我需要将其移植到Windows。

我该如何处理?

2 个答案:

答案 0 :(得分:3)

我将假设您不需要继续使用相同的代码库维护DEC Ada版本。至少存在两种​​可能的技术障碍。

首先,GNAT使用file naming conventions(你不能说,但我猜你是否会使用GNAT)。默认情况下,GNAT期望每个文件包含一个编译单元(规范或正文):所以

package Pkg is
   ...
end Pkg;

将位于文件pkg.ads

package body Pkg is
   ...
end Pkg;

将在文件pkg.adb中。编译一个开始with Pkg; GNAT的文件时会查找pkg.ads(而不是Pkg.ads,尽管您可以在Windows或macOS上使用它,但它们不区分大小写,但不是保留文件系统。)

您可以使用 gnatchop 来执行此操作。

gnatchop *.ada chopped

会将所有*.ada源文件拆分为GNAT在目录chopped/中所期望的文件。

这里可能出错的一件事是,如果一个给定的单位在多个源文件中;您必须决定要保留哪一个(或者如果您需要两个版本来处理不同的环境,该怎么办)。

如果 gnatchop 无法满足您的需求,您可以尝试 gnatname (上述参考或this answer)。

其次,DEC Ada支持许多特定于VMS的功能。这是否会影响您取决于您​​的应用程序的原始程序员使用它们的程度。你最好的选择是去;如果你遇到问题,请再问一次(请问另一个问题!)

答案 1 :(得分:1)

每当我将Ada从一个编译器/平台移植到另一个编译器/平台时,我总是跳进池的深处,即Just Do It。

获取目标平台上安排的文件和目录,使用gnatchop或gnatname处理文件命名(根据Simon的答案),设置项目文件(我在gps中以交互方式执行此操作),然后按F4(Build Main)。

根据需要修复。