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