我正在为 Linux 上的 Ada 开发进行贸易研究。你有什么好的编译器/操作系统推荐吗?
到目前为止,我已经在 CentOS 5.4 上运行了来自 AdaCore 的 GNAT,并且我收到了 Rational Apex 和 Aonix ObjectAda 的许可证请求。
这是一个移植工作。原始代码库是 OSF1 4.0d 上的 Apex 3.0。
还有什么我应该考虑的吗?理想情况下,这将是一个受支持的环境。
我正在为 Linux 上的 Ada 开发进行贸易研究。你有什么好的编译器/操作系统推荐吗?
到目前为止,我已经在 CentOS 5.4 上运行了来自 AdaCore 的 GNAT,并且我收到了 Rational Apex 和 Aonix ObjectAda 的许可证请求。
这是一个移植工作。原始代码库是 OSF1 4.0d 上的 Apex 3.0。
还有什么我应该考虑的吗?理想情况下,这将是一个受支持的环境。
您需要考虑的一个问题是确定要移植的系统在多大程度上利用供应商提供的软件包来执行其功能。我在较旧的大型系统(尤其是 Apex 系统)中看到的情况是,语言专家在其开发期间倾向于认为 vanilla Ada 不够好,因此与所有这些供应商提供的软件包联系在一起。如果这就是您的系统现在所做的事情,那么这是在供应商内部升级并坚持使用 Apex 的有力论据(所有其他条件基本相同)。
每当我完成此类系统的移植时,如果有机会我会尽我最大的努力撕掉所有供应商提供的东西——十分之九的时候,用普通的 Ada 实现替换供应商特定的东西也同样有效,并且您不再需要处理特定于编译器的包的怪癖。此外,您还增加了系统的可移植性和可维护性,使其能够更好地适应未来的变化。
总是有 SPARK,但我相信它是 Ada 语言的专用/子集版本。您可能想联系 SigAda 或 Ada usenet 组,看看是否有其他想法。
不过老实说,GNAT 是一个很棒的工具集。您可以使用 GNATBench(一个 Eclipse 界面)或 GPS(一个轻量级 GTK+ IDE)来与 GNAT 工具交互。
我知道的其他编译器是Green Hills AdaMULTI(适用于各种 RTOS)和DDC-I 的 SCORE(也适用于各种 RTOS)