我正在为在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系统,在开发期间,语言专家往往决定使用纯粹的Ada就不够好,因此会使用所有这些厂商提供的软件包。如果您的系统现在也是这样做的,那么升级到同一厂商的新版本并继续使用Apex(其他事项基本相等)是一个很有说服力的理由。
每当我进行这种系统的移植时,如果有机会,我都尽力删除所有厂商提供的东西 - 十次中有九次,用纯粹的Ada实现替换厂商特定的内容效果同样好,并且您不再需要处理编译器特定软件包的怪癖。此外,您还可以增加系统的可移植性和可维护性,使其更好地适应未来的变化。
总有SPARK可用,但我认为它是Ada语言的一个专业/子集版本。您可以联系SigAda或Ada Usenet组,以了解是否有其他想法。
不过,GNAT是一个很好的工具集。您可以使用GNATBench(Eclipse接口)或GPS(轻量级GTK+ IDE)与GNAT工具进行交互。
我知道的其他编译器包括Green Hills AdaMULTI(适用于各种RTOS),以及DDC-I's SCORE(也适用于各种RTOS)。