移植到Itanium& Gnat Ada

时间:2018-02-11 21:13:59

标签: ada itanium

使用GNAT Ada编译器将Ada 83中使用OpenVMS平台开发的应用程序迁移到Itanium。

  1. 这个港口有什么风险?

  2. 是否有一般性的迁移普遍接受计划。

  3. 如果知道GNAT Ada和DEC Ada之间的浮点存在管理差异,我如何验证此应用程序。

3 个答案:

答案 0 :(得分:3)

将在编译时检测浮点类型的问题。我不记得DEC Ada的限制,但我在英特尔架构上使用GNAT的经验是,你可以拥有多达18位有效数字,这比我在DEC Alpha上使用GNAT时更多。

我参与了一个从DEC Ada移植到GNAT的应用程序。据我了解,所有移植问题都与代表性条款或源文本中的普通错误有关,而DEC Ada没有检测到。

我的猜测是你应该计算1天/ M行+ 2小时/代表性条款。

然后当然要运行完整的测试套件。

答案 1 :(得分:3)

DEC聘请了ACT(现在的AdaCore)来使GNAT DEC编译器兼容,因此最大的努力可能就是告诉GNAT文件名是什么。一旦GNAT知道哪些文件包含哪些Ada单元,使用-gnat83选项应该处理除平台特定代码之外的所有内容,并且可以指出它无法处理的特定于平台的代码。使用-gnat95选项,您可能会遇到更多的不一致,但编译器应指出这些不一致,并且大多数Ada-83代码都是有效的Ada 95. *移动到该语言的更高版本(-gnat05和-gnat12)将增加问题的机会。

一旦你进行了设置,GNAT可以编译你的代码,用-gnat83进行编译应该会让你知道所需的工作量。很可能它会变得相当小。

*我曾经通过重新编译将Ada-83代码的数千个终结符分号移植到Ada 95。当然,该代码被正确设计和实现为独立于编译器和平台,并且幸运的是没有使用任何新的Ada-95保留字作为标识符。 YMMV

答案 2 :(得分:0)

我很晚才看到。只是关于FP的精度。您可以将DEC专用FP与GNAT一起使用。您只需要重新编译所有ada库,指定您选择DEC fp格式即可。