跳转到内容

Ada 编程/安装

来自维基教科书,开放的书籍,开放的世界
(从 Ada 编程/GNAT 重定向)

Ada. Time-tested, safe and secure.
Ada。经久耐用,安全可靠。

Ada 编译器 由多个供应商提供,适用于各种主机和目标平台。 Ada 资源协会 维护着 可用编译器的列表

下面是可用编译器的字母排序列表,并附带其他说明。

SofCheck 的 AdaMagic

[编辑 | 编辑源代码]

SofCheck 曾经生产过一个 Ada 95 前端,可以插入代码生成后端,从而生成一个完整的编译器。这个前端提供给编译器供应商进行许可。

基于这个前端,SofCheck 曾经提供以下产品:

  • AdaMagic,一个 Ada 到 C/C++ 的翻译器
  • AppletMagic,一个 Ada 到 Java 字节码编译器

SofCheck 已与 AdaCore 合并,名称为 AdaCore,AdaCore 网站上没有 AdaMagic 产品的可见痕迹。

但是,MapuSoft 现在获得了 AdaMagic 的转售许可。他们将其改名为 "Ada 到 C/C++ 转换器"。新名字听起来像是假的。几乎没有 Ada 开发人员听说过 MapuSoft。MapuSoft 从未见过开发 Ada 库,无论是商业的还是 FLOSS 的。他们也从未出现在 Ada 会议上。然而,这确实是真实的,是一个经过验证的 Ada 编译器,它了解在 C/C++ 编译器之上工作所需的许多技巧。例如,它包含经过验证的整数溢出处理知识,带有特殊的“-1”情况。

由于 MapuSoft 的存在,AdaMagic 确实变得对开发人员可用。 获取 AppCOE,但不包括 Win64 版本,安装它。在 MapuSoft/AppCOE_x32/Tools/Ada 中,将会有 AdaMagic。众所周知,AdaMagic 支持 Win64,但众所周知,Win64 的 AppCOE 完全不包含 AdaMagic。

从命令行使用 AdaMagic 在 AppCOE 中支持不佳,但仍然可以实现。设置 ADA_MAGIC 环境变量,编辑 Tools/Ada/{linux|windows}/SITE/rts_path 指向实际路径,编辑 SITE/config 去除不支持的 C 编译器键,然后通过以下命令编译:

adareg -key=`test_key | sed -e '/md5/!d;s/md5 = //'` Hello_World.adb
adabgen -key=`test_key | sed -e '/md5/!d;s/md5 = //'` Hello_World

商业;专有。

Green Hills Software 的 AdaMULTI

[编辑 | 编辑源代码]

Green Hills Software 出售针对多种语言和多种目标(包括 DSP)的开发环境,主要面向嵌入式软件开发人员。

支持的语言 Ada 83、Ada 95、C、C++、Fortran
运行时库许可证 专有,免版税。
本地平台 i386 上的 GNU/Linux、i386 上的 Microsoft Windows 和 SPARC 上的 Solaris
交叉平台 来自 Green Hills 的 INTEGRITY、INTEGRITY-178B 和 velOSity;来自 Wind River 的 VxWorks;多个裸机目标,包括 x86、PowerPC、ARM、MIPS 和 ColdFire/68k。经过 DO-178B A 级认证的安全关键型 GMART 和 GSTART 运行时库。
可从以下网址获取: http://www.ghs.com/
支持 商业
包含的附加组件 IDE、调试器、TimeMachine、与各种版本控制系统的集成、源代码浏览器、其他工具

GHS 声称在确保其编译器生成最高效的代码方面做出了巨大努力,并经常引用 EEMBC 基准测试结果作为证据,因为芯片制造商发布的许多结果使用 GHS 编译器来展示其芯片的最佳性能,尽管这些基准测试并非针对 Ada 特定设计。

GHS 尚未公开宣布支持最近的两个 Ada 标准(2005 和 2012),但他们确实继续积极地营销和开发其现有的 Ada 产品。

HP 的 DEC Ada

[编辑 | 编辑源代码]

DEC Ada 是针对 OpenVMS 的 Ada 83 编译器。虽然“DEC Ada”可能是大多数用户所熟知的名称,但该编译器也被称为“HP Ada”、“VAX Ada”和“Compaq Ada”。

GNAT,AdaCore 和自由软件基金会的 GNU Ada 编译器

[编辑 | 编辑源代码]

GNAT 是免费的 GNU Ada 编译器,是 GNU 编译器集合 的一部分。它是唯一支持语言标准所有可选附录的 Ada 编译器。最初的作者成立了公司 AdaCore 来提供专业支持、咨询、培训和定制开发服务。因此,可以从以下详细介绍的多个来源获取 GNAT。

GNAT 始终根据 GNU 通用公共许可证 的条款获得许可。

但是,运行时库使用 GPLGNAT 修改的 GPL,具体取决于获取它的位置。

可以从多个地方获取几个可选附加组件

  • ASIS, Ada 语义接口规范,是一个允许 Ada 程序检查和操作其他 Ada 程序的库。
  • FLORIST 是一个为操作系统提供 POSIX 编程接口的库。
  • GDB,GNU 调试器,带 Ada 扩展。
  • GLADE 实施了附录 E,分布式系统附录。有了它,就可以用 Ada 编写分布式程序,其中运行在不同计算机上的程序分区通过网络相互通信,并与共享对象通信。
  • GPS,GNAT 编程工作室,是一个功能齐全的集成开发环境,用 Ada 编写。它允许您用 Ada、C 和 C++ 进行编码。

还有许多免费软件库可用。

GNAT GPL(或社区)版

[编辑 | 编辑源代码]

截至 2022 年 5 月,AdaCore 不再支持 GNAT GPL。推荐安装社区版中包含的所有工具和库的方法是使用 推荐的方式,即使用 Alire,一个用于 Ada 源代码的包管理器,也 提供工具链。虽然您仍然可以下载和安装发布的最后一个 GNAT 社区版,但不会有进一步的发布。

GNAT 社区版是 AdaCore 的源代码和二进制发行版,仅供自由软件开发人员使用。如果您想分发与 GPL 运行时库链接的二进制程序,则必须根据与 GNU 通用公共许可证兼容的条款进行分发。

截至 GNAT GPL 版 2013

支持的语言 Ada 83、Ada 95、Ada 2005、Ada 2012、C、C++
运行时库许可证 纯 GPL
本地平台 x86_64 上的 GNU/Linux;i386 上的 Microsoft Windows;Mac OS X (Darwin, x86_64)。早期版本支持 SPARC 上的 Solaris、i386 上的 GNU/Linux、i386 上的 Microsoft .NET
交叉平台 AVR,托管在 Windows 上;Java VM,托管在 Windows 上;Mindstorms NXT,托管在 Windows 上;ARM,托管在 Windows 和 Linux 上;
编译器后端 GCC 4.9
可从以下网址获取: https://www.adacore.com/download
支持
包含的附加组件 源代码和二进制形式的 GDB、GPS;许多更多仅限源代码的形式。

GNAT 修改的 GPL 版本

[编辑 | 编辑源代码]

通过这些版本的 GNAT,您可以根据您选择的许可条款以二进制形式分发您的程序;您不受 GPL 约束。

GNAT 3.15p

[编辑 | 编辑源代码]

这是 AdaCore 发布的最后一个使用 GNAT 修改的通用公共许可证 的 GNAT 公开版本。

GNAT 3.15p 已通过 Ada 符合性评估测试套件 (ACATS)。它于 2002 年 10 月发布。

AdaCore 的二进制发行版还包含 Ada 感知版本的 GNU 调试器 (GDB),以及 GDB 的图形前端,称为 GNU 可视调试器 (GVD)。

支持的语言 Ada 83、Ada 95、C
运行时库许可证 GNAT 修改的 GPL
本地平台 i386 上的 GNU/Linux(使用 glibc 2.1 或更高版本)、i386 上的 Microsoft Windows、i386 上的 OS/2 2.0 或更高版本、SPARC 上的 Solaris 2.5 或更高版本
交叉平台
编译器后端 GCC 2.8.1
可从以下网址获取: ftp://ftp.cs.kuleuven.ac.be/pub/Ada-Belgium/mirrors/gnu-ada/3.15p/
支持
包含的附加组件 ASIS、Florist、GLADE、GDB、Gnatwin(仅限 Windows)、GtkAda 1.2、GVD

GNAT Pro 是 GNAT 的专业版本,由 AdaCore 以订阅包的形式提供。该软件包还包括专业咨询、培训和维护服务。AdaCore 可以为本地或交叉开发提供编译器的定制版本。有关更多信息,请参见 http://www.adacore.com/

支持的语言 Ada 83、Ada 95、Ada 2005、Ada 2012、C,以及可选的 C++
运行时库许可证 GNAT 修改的 GPL
本地平台 许多,请参见 http://www.adacore.com/home/products/gnatpro/supported_platforms/
交叉平台 许多,请参见 http://www.adacore.com/home/products/gnatpro/supported_platforms/;应要求提供更多
编译器后端 GCC 4.3
可从以下网址获取: http://www.adacore.com/ 订阅(商业)
支持 商业;客户专属的错误数据库
包含的附加组件 ASIS、Florist、GDB、GLADE、GPS、GtkAda、XML/Ada,以及许多其他源代码和二进制形式(应要求提供)。

自 2001 年 10 月以来,GNAT 一直是 自由软件基金会GCC 的一部分。自由软件基金会不发布二进制文件,只发布源代码。它对 Ada(和其他语言)运行时库的许可允许开发专有软件,而无需强制执行 GPL 的条款。

大多数 GNU/Linux 发行版和几个其他平台的发行版包含预构建的二进制文件;见下文。

出于技术原因,我们建议不要使用 GCC 3.1、3.2、3.3 和 4.0 中包含的 Ada 编译器。相反,我们建议使用 GCC 3.4、4.1 或更高版本,或使用 AdaCore 发布的版本之一(3.15p、GPL 版或 Pro)。

自 2003 年 10 月以来,AdaCore 在 第 1 阶段 中将他们从 GNAT Pro 中的大多数更改合并到 GCC 中;这发生在每个主要版本中一次。自 GCC 3.4 以来,AdaCore 逐步增加了对修订版语言标准的支持,首先是 Ada 2005,现在是 Ada 2012。

GCC 版本 4.4 切换到 GNU 通用公共许可证的版本 3,并授予 运行时库例外,其精神类似于所有先前版本中使用的 GNAT 修改的通用公共许可证。此运行时库例外适用于所有语言的运行时库,而不仅仅是 Ada。

截至 2012-03-22 发布的 GCC 4.7

支持的语言 Ada 83、Ada 95、Ada 2005、Ada 2012 的部分内容、C、C++、Fortran 95、Java、Objective-C、Objective-C++(以及其他)
运行时库许可证 GPL 版本 3 以及 运行时库例外
本地平台 无(仅源代码)
交叉平台 无(仅源代码)
编译器后端 GCC 4.7
可从以下网址获取: http://gcc.gnu.org/ 仅限源代码形式。
支持 志愿者;公共错误数据库
包含的附加组件

GNU Ada 项目

[编辑 | 编辑源代码]

GNU Ada 项目 为多个操作系统提供各种 GNAT 版本的源代码和二进制包,重要的是,还提供用于创建这些包的脚本。如果您计划将编译器移植到另一个平台或创建交叉编译器,这可能会有所帮助;有用于 GNU/LinuxMac OS X 用户构建自己的 GNAT 编译器的说明。

GNAT 的 GPLGMGPLGCC 运行时库例外 版本均可用。

支持的语言 Ada 83、Ada 95、Ada 2005、C。 (某些发行版还支持 Ada 2012、Fortran 90、Java、Objective C 和 Objective C++)
运行时库许可证 纯、GNAT 修改的 GPL 或 GCC 运行时库例外
本地平台 Fedora Core 4 和 5、MS-DOS、OS/2、Solaris 10、SuSE 10、Mac OS X、(更多?)
交叉平台
编译器后端 GCC 2.8.1、3.4、4.0、4.1、4.2、4.3、4.4、4.5、4.6 (各种二进制包)
可从以下网址获取: Sourceforge
支持 志愿者;公共错误数据库
包含的附加组件 AdaBrowse、ASIS、Booch Components、Charles、GPS、GtkAda (更多?)

A#(A-Sharp,也称为 Ada for .NET)

[编辑 | 编辑源代码]

此编译器具有历史意义,因为它现在已合并到 GNAT GPL 版GNAT Pro 中。

A# 是 Ada 到 .NET 平台 的移植。A# 最初是在美国空军学院计算机科学系开发的,该系根据 GNU 通用公共许可证的条款将 A# 分发给 Ada 社区。A# 与 Microsoft Visual Studio 2005、AdaGIDE 和 RAPID 开源 GUI 设计工具很好地集成。截至 2006-06-06

支持的语言 Ada 83、Ada 95、C
运行时库许可证 纯 GPL
本地平台 Microsoft .NET
交叉平台
编译器后端 GCC 3.4(GNAT GPL 2006 版?)
可从以下网址获取: http://sourceforge.net/projects/asharp/
支持 无(但请参见 GNAT Pro)
包含的附加组件 无。

用于 AVR 微控制器的 GNAT

[编辑 | 编辑源代码]

Rolf Ebert 及其他人提供了配置为交叉编译器到各种 AVR 微控制器 的 GNAT 版本,以及适用于在微控制器上使用的实验性 Ada 运行时库。截至版本 1.1.0(2010-02-25)

支持的语言 Ada 83、Ada 95、Ada 2005、C
运行时库许可证 GNAT 修改的 GPL
主机平台 GNU/Linux 和 Microsoft Windows 在 i386 上
目标平台 各种 AVR 8 位微控制器
编译器后端 GCC 4.7
可从以下网址获取: http://avr-ada.sourceforge.net/
支持 志愿者;公共错误数据库
包含的附加组件 部分 Ada 运行时系统,AVR 外设支持库

GNAT for LEON

[编辑 | 编辑源代码]

马德里理工大学 (UPM, Universidad Politécnica de Madrid) 的实时研究小组为在 LEON 处理器 上执行编写了符合 Ravenscar 标准的实时内核,以及经过修改的运行时库。他们还提供了一个 GNAT 交叉编译器。截至 2.0.1 版本

支持的语言 Ada 83、Ada 95、Ada 2005、C
运行时库许可证 纯 GPL
本地平台
交叉平台 GNU/Linux 在 i686 上到 LEON2 裸板
编译器后端 GCC 4.1 (GNAT GPL 2007 版)
可从以下网址获取: http://www.dit.upm.es/ork/
支持 ?
包含的附加组件 OpenRavenscar 实时内核;最小运行时库

GNAT for Macintosh (Mac OS X)

[编辑 | 编辑源代码]

GNAT for Macintosh 提供了 FSF (GMGPL) 和 AdaCore (GPL) 两个版本的 GNAT,并与 XcodeCarbon 集成和绑定。

请注意,该网站上次更新针对的是 GCC 4.3 和 Mac OS X Leopard(PowerPC 和 Intel 架构)。除了与 Apple 的 Carbon 图形用户界面和 Xcode 3.1 集成方面的工作之外,建议 查看以上内容

您还可以在 MacPorts 获得支持;最后更新(截至 2011 年 11 月 25 日)针对的是 GCC 4.4.2。

预编译包作为更大发行版的一部分

[编辑 | 编辑源代码]

许多发行版包含 GCC 或 AdaCore 发布的各种 GNAT 的预编译二进制文件。发行版之间的质量差异很大。以下发行版列表按字母顺序排列。(请保持这种顺序。)

AIDE(适用于 Microsoft Windows)

[编辑 | 编辑源代码]

AIDE — Ada Instant Development Environment 是一款适用于 Windows 的完整的“一键式”即用型 Ada 发行版,包含 GNAT、全面的文档、工具和库。所有内容均已预编译,并且还提供源代码。安装过程非常简单(只需解压缩到默认的 c:\aide 并运行)。AIDE 适用于初学者和教师,但高级用户也可以使用。

支持的语言 Ada 83、Ada 95、C
运行时库许可证 GNAT 修改的 GPL
本地平台 Microsoft Windows 在 i386 上
交叉平台
编译器后端 GCC 2.8.1
可从以下网址获取: https://stef.genesix.org/aide/aide.html
支持 [email protected]
包含的附加组件 ASIS、GDB、GPS、GtkAda、Texinfo(更多?)

Cygwin(适用于 Microsoft Windows)

[编辑 | 编辑源代码]

Cygwin 是一款面向 Windows 的类似 Linux 的环境,它也包含 GNAT 编译器的版本。Cygwin 版本的 GNATMinGW 版本旧,并且不支持 DLL 和多线程(截至 2004 年 11 月)

Debian(GNU/Linux 和 GNU/kFreeBSD)

[编辑 | 编辑源代码]

有一个 Debian Ada 策略,旨在使 Debian 成为最佳的 Ada 开发和部署平台。开发平台包括编译器和许多库,这些库都是预先打包和集成的,便于在任何程序中使用。部署平台是著名的稳定版 发行版,适用于关键任务工作负载,并且生命周期很长,通常为 3 到 4 年。由于 Debian 是一个二进制发行版,因此可以在其上部署非免费的、仅二进制的程序,同时享受稳定平台的所有优势。出于这个原因,编译器选择比较保守,策略规定所有 Ada 程序和库都必须使用相同版本的 GNAT 进行编译。这使得可以在同一程序中使用所有库。Debian 将运行时库与开发包分开,以便最终用户不必为了运行程序而安装开发系统。

可以使用以下命令在 Debian 系统上安装 GNU Ada 编译器

aptitude install gnat

这还会提供一个相关的软件包列表,这些软件包可能对 Ada 程序员有用。

Debian 的独特之处在于,它还允许程序员使用 GNAT 的一些内部组件,方法是使用两个库

  • libgnatvsn(根据 GNAT-Modified GPL 许可)和
  • libgnatprj(项目管理器,根据纯 GPL 许可)。

Debian 软件包利用了这些库。

在下表中,有关未来 Debian 8.0 Jessie 的信息截至 2014 年 10 月是准确的,并且会发生变化。

  3.1 Sarge 4.0 Etch 5.0 Lenny 6.0 Squeeze 7.0 Wheezy 8.0 Jessie
发布日期 2005 年 6 月 2007 年 4 月 2009 年 2 月 2011 年 2 月 2013 年 5 月 2015 年 4 月
支持的语言 Ada 83、Ada 95、C +Ada 2005,Ada 2012 的部分内容,C、C++、Fortran 95、Java、Objective-C、Objective-C++ +Ada 2012
运行时库许可证 GNAT-modified GPL(从 5.0 Lenny 开始的 ZCX 和 SJLJ 两个版本) GPL 版本 3,包含运行时库例外
本地平台 3.1 Sarge 4.0 Etch 5.0 Lenny 6.0 Squeeze 7.0 Wheezy 8.0 Jessie
alpha
amd64
armel 初步
armhf
hppa
hurd-i386
i386
ia64
kfreebsd-amd64
kfreebsd-i386
mips
mipsel
powerpc
ppc64
s390 s390x
sparc
交叉平台
编译器后端 GCC 2.8.1 GCC 4.1 GCC 4.3 GCC 4.4 GCC 4.6 GCC 4.9
可从以下网址获取: http://www.debian.org/
支持 志愿者;公开错误数据库;第三方提供付费支持;公开邮件列表
包含的附加组件 3.1 Sarge 4.0 Etch 5.0 Lenny 6.0 Squeeze 7.0 Wheezy 8.0 Jessie
ada-reference-manual 1995 1995 1995 2005 2012 2012
AdaBindX 0.7.2
AdaBrowse 4.0.2 4.0.2 4.0.2 4.0.3 4.0.3 -
AdaCGI 1.6 1.6 1.6 1.6 1.6 1.6
AdaControl 1.6r8 1.9r4 1.12r3 1.12r3 1.16r11
APQ(与 PostgreSQL 配合使用) 3.0 3.2 3.2
AdaSockets 1.8.4.7 1.8.4.7 1.8.4.7 1.8.8 1.8.10 1.8.11
Ahven 1.2 1.7 2.1 2.4
Alog 0.1 0.3 0.4.1 -
anet 0.1 0.3.1
ASIS 3.15p 2005 2007 2008 2010 2014
AUnit 1.01 1.03 1.03 1.03 1.03 3.7.1
AWS 2.0 2.2 2.5 预发布版 2.7 2.10.2 3.2.0
Charles 2005-02-17 (已被 gnat 中的 Ada.Containers 取代)
Florist 3.15p 2006 2006 2009 2011 2014
GDB 5.3 6.4 6.8 7.0.1 7.4.1 7.7.1
GLADE 3.15p 2006 (已被 PolyORB 取代)
GMPAda 0.0.20091124 0.0.20120331 0.0.20131223
GNADE 1.5.1 1.6.1 1.6.1 1.6.2 1.6.2 -
GNAT Checker 1999-05-19 (已被 AdaControl 取代)
GPRBuild 1.3.0w 2011 2014
GPS 2.1 4.0.1 4.0.1 4.3 5.0 5.3
GtkAda 2.4 2.8.1 2.8.1 2.14.2 2.24.1 2.24.4
Log4Ada 1.0 1.2 1.2
Narval 1.10.2
OpenToken 3.0b 3.0b 3.0b 4.0b 4.0b 5.0a
PC/SC Ada 0.6 0.7.1 0.7.2
PolyORB 2.6 预发布版 2.8 预发布版 2.11 预发布版
PLPlot 5.9.0 5.9.5 5.9.5 5.10.0
模板解析器 10.0+20060522 11.1 11.5 11.6 11.8
TextTools 2.0.3 2.0.3 2.0.5 2.0.6 2.1.0
XML/Ada 1.0 2.2 3.0 3.2 4.1 4.4
XML-EZ-out 1.06 1.06.1 1.06.1

ADT 针对 Eclipse 的插件(请参阅 ObjectAda from Aonix 部分)可与 Debian Etch 打包的 GNAT 配合使用。将“/usr”指定为工具链路径。

DJGPP(适用于 MS-DOS)

[编辑 | 编辑源代码]

DJGPP 的 GCC 发行版中包含 GNAT

DJGPP 是将包含 GNU 实用程序在内的综合集合移植到具有 32 位扩展的 MS-DOS,并积极支持(截至 2005 年 1 月)。它包含整个 GCC 编译器集合,现在也包含 Ada。请参阅 DJGPP 网站以获取安装说明。

DJGPP 程序也可以在 Windows 的 DOS 命令框中运行,以及在原生 MS-DOS 系统中运行。

FreeBSD 和 DragonFly

[编辑 | 编辑源代码]

FreeBSDports 仓库 包含一个 Ada 框架,以及不断扩充的软件包集合。该框架目前由 FSF GCC 6.3.1 构建,虽然可以选择使用 FSF GCC 5.4 代替。AdaCore GPL 编译器不可用。造成这种情况的原因有很多,其中一个主要原因是维护多个编译器的开销很大。ports 中也不包含任何非 GCC 的 Ada 编译器。

虽然 FreeBSD 会为每个版本提供快照,但 ports 仓库正在不断更新,大多数用户更喜欢使用包含最新软件包的“头部”ports。

支持的语言 Ada 83, Ada 95, Ada 2005, Ada 2012, C, C++, ObjC, Fortran
运行时库许可证 GPLv3 附带运行时库例外 v3
本地平台 FreeBSD i386, FreeBSD AMD64, FreeBSD ARM64, DragonFly x86-64
交叉平台 FreeBSD/DragonFly->Android (支持 ARMv7 和 x86),FreeBSD/DragonFly->FreeBSD/ARM64 (支持 Aarch64)
编译器后端 GCC 6.3.1
可从以下网址获取: https://freebsd.ac.cn, https://github.com/DragonFlyBSD/DPorts
支持 志愿者;公共错误数据库

安装软件有两种方法。最快速、最简单的方法是使用命令“pkg install <pkg name>”安装预构建的二进制文件。例如,要安装 GNAT 编程工作室及其所有依赖项(包括 GNAT 编译器),只需要执行一条命令:

pkg install gps-ide

如果某个特定软件包不可用,或者用户只是更喜欢从源代码构建(这可能需要很长时间),那么可以使用以下命令:

cd /usr/ports/devel/gps && make install clean

与二进制安装一样,如果缺少任何依赖项,也会先从源代码构建它们。

截至 2017 年 2 月 8 日的可用软件

目录 常用名称 版本 pkg 名称
archivers/zip-ada Zip-Ada (库) 52 zip-ada
cad/ghdl GNU VHDL 模拟器 0.33 ghdl
databases/adabase 与 Postgres、MySQL 和 SQLite 的紧密绑定 3.0 adabase
databases/apq Ada95 数据库接口库 3.2.0 apq
databases/apq-mysql APQ MySQL 驱动程序 3.2.0 apq-mysql
databases/apq-odbc APQ ODBC 驱动程序 3.2.0 apq-odbc
databases/apq-pgsql APQ PostgreSQL 驱动程序 3.2.0 apq-pgsql
devel/ada-util Ada 2005 应用程序实用程序 (库) 1.8.0 ada-util
devel/adaid UUID 生成库 0.0.1 adaid
devel/adabooch Ada95 Booch 组件 (库) 2016-03-21 adabooch
devel/adacurses AdaCurses (绑定) 2015-08-08 adacurses
devel/afay AFlex 和 AYACC 解析器生成器 041111 afay
devel/ahven Ahven (单元测试库) 2.6 ahven
devel/alog 可堆叠日志记录框架 0.5.2 alog
devel/aunit 单元测试框架 2016 aunit
devel/florist-gpl Florist (Posix 绑定) 2016 florist-gpl
devel/gnatcoll GNAT 组件集合 2016 gnatcoll
devel/gnatpython GNATPython (基于 python 的测试框架) 2014-02-24 gnatpython
devel/gprbuild GPRbuild (多语言构建工具) 20160609 gprbuild
devel/gps GNAT 编程工作室 2016 gps-ide
devel/libspark2012 SPARK 2012 库源文件 2012 libspark2012
devel/matreshka Matreshka (信息系统库) 0.7.0 matreshka
devel/pcsc-ada PCSC 库 0.7.3 pcsc-ada
devel/pragmarcs PragmAda 可重用组件 20161207 pragmarcs
devel/sdl_gnat GNAT SDL 绑定 (精简) 2013 sdl_gnat
devel/simple_components 简单的 Ada 组件 4.18 simple_components
dns/ironsides Spark/Ada Ironsides DNS 服务器 2015-04-15 ironsides
graphics/generic_image_decoder 图像解码库 05 generic_image_decoder
lang/adacontrol AdaControl (构造检测工具) 1.17r3 adacontrol
lang/asis Ada 语义接口规范 2016 asis
lang/gcc5-aux GNAT Ada 编译器 (FSF GCC) 5.4 (2016-06-03) gcc5-aux
lang/gcc6-aux GNAT Ada 编译器 (FSF GCC) 6.3.1 (2017-02-02) gcc6-aux
lang/gnat_util GNAT 源代码 (辅助库) 2017-02-02 gnat_util
lang/gnatcross-aarch64 FreeBSD/ARM64 交叉编译器,Aarch64 2017-02-02 (6.3.1) gnatcross-aarch64
lang/gnatcross-binutils-aarch64 FreeBSD/ARM64 交叉编译器使用的 GNU Binutils 2.27 gnatcross-binutils-aarch64
lang/gnatcross-sysroot-aarch64 FreeBSD/ARM64 sysroot 1 gnatcross-sysroot-aarch64
lang/gnatdroid-armv7 Android 5.0 交叉编译器,ARMv7 2017-02-02 (6.3.1) gnatdroid-armv7
lang/gnatdroid-binutils Android 交叉编译器使用的 GNU Binutils 2.27 gnatdroid-binutils
lang/gnatdroid-binutils-x86 Android 交叉编译器使用的 GNU Binutils (x86) 2.27 gnatdroid-binutils-x86
lang/gnatdroid-sysroot Android API 4.0 到 6.0 sysroot 23 gnatdroid-sysroot
lang/gnatdroid-sysroot-x86 Android API 4.4 到 6.0 sysroot (x86) 23 gnatdroid-sysroot-x86
lang/gnatdroid-x86 Android 5.0 交叉编译器,x86 2017-02-02 (6.3.1) gnatdroid-x86
lang/lua-ada Lua 的 Ada 绑定 1.0 ada-lua
math/plplot-ada PLplot Ada 绑定 5.12.0 plplot-ada
misc/excel-writer Excel 输出库 15 excel-writer
misc/ini_file_manager 配置文件库 03 ini_file_manager
net/adasockets IPv4 套接字库 1.10 adasockets
net/anet 网络库 (IPv4 和 IPv6) 0.3.4 anet
net/polyorb PolyORB (CORBA/SOAP/DSA 中间件) 2.11.1 (2014) polyorb
security/libadacrypt 密码学库 (对称 & 非对称) 20151019 libadacrypt
security/libsparkcrypto LibSparkCrypto (密码学库) 0.1.1 libsparkcrypto
shells/sparforte 针对任务关键型项目的 shell 和脚本语言 2.0.2 spareforte
textproc/adabrowse AdaBrowse (Ada95 HTML 文档生成器) 4.0.3 adabrowse
textproc/opentoken Ada 词法分析器和解析器 6.0b opentoken
textproc/py-sphinxcontrib-adadomain 用于 Ada 的 Sphinx 文档生成器 0.1 py27-sphinxcontrib-adadomain
textproc/templates_parser AWS 模板解析器库 17.0.0 templates_parser
textproc/words Words (拉丁语/英语词典) 1.97F words
textproc/xml_ez_out XML 输出 (库) 1.06 xml_ez_out
textproc/xmlada XML/Ada (库) 17.0.0 xmlada
www/aws Ada Web 服务器 17.0.1 aws
www/aws-demos Ada Web 服务器演示 17.0.1 aws-demos
x11-toolkits/gtkada GTK2/Ada (绑定) 2.24.4 gtkada
x11-toolkits/gtkada3 GTK3/Ada (绑定) 3.14.2 gtkada3

Gentoo GNU/Linux

[edit | edit source]

可以使用 emerge 在 Gentoo 系统上安装 GNU Ada 编译器。

 emerge dev-lang/gnat

与 Debian 不同,Gentoo 主要是一个源代码发行版,因此许多软件包只能以源代码形式提供,需要用户重新编译它们(使用 emerge)。

同样与 Debian 不同,Gentoo 支持在同一系统上并行使用多个版本的 GNAT。请谨慎操作,因为并非所有附加组件和库都适用于所有版本的 GNAT。

支持的语言 Ada 83, Ada 95, Ada 2005, C (更多?)
运行时库许可证 纯 GPL 或 GNAT 修改后的 GPL(两者均可用)
本地平台 amd64、powerpc 和 i386 上的 Gentoo GNU/Linux
交叉平台
编译器后端 GCC 3.4、4.1(各种二进制软件包)
可从以下网址获取: https://gentoolinux.cn/(查看其他 Gentoo dev-ada 软件包)
支持 志愿者;公共错误数据库
包含的附加组件 AdaBindX, AdaBroker, AdaDoc, AdaOpenGL, AdaSockets, ASIS, AUnit, Booch 组件, CBind, Charles, Florist, GLADE, GPS, GtkAda, XML/Ada

Mandriva Linux

[edit | edit source]

可以使用以下命令在 Mandriva 系统上安装 GNU Ada 编译器:

urpmi gnat

MinGW (适用于 Microsoft Windows)

[edit | edit source]

MinGW — Minimalist GNU for Windows 包含一个版本的 GNAT 编译器。

当前版本的 MinGW (5.1.6) 包含 gcc-4.5.0。这包含一个功能齐全的 GNAT 编译器。如果自动下载器无法正常工作,可以从 MinGW/BaseSystem/GCC/Version4/ 直接下载编译器:选择 gcc-4.5.0-1。

旧说明
[edit | edit source]

以下列表将帮助您进行安装。(我可能遗漏了一些内容 - 但这是维基百科,请随时添加内容)

  1. 安装 MinGW-3.1.0-1.exe
    1. 解压缩 binutils-2.15.91-20040904-1.tar.gz
    2. 解压缩 mingw-runtime-3.5.tar.gz
    3. 解压缩 gcc-core-3.4.2-20040916-1.tar.gz
    4. 解压缩 gcc-ada-3.4.2-20040916-1.tar.gz
    5. 解压缩 gcc-g++-3.4.2-20040916-1.tar.gz (可选)
    6. 解压缩 gcc-g77-3.4.2-20040916-1.tar.gz (可选)
    7. 解压缩 gcc-java-3.4.2-20040916-1.tar.gz (可选)
    8. 解压缩 gcc-objc-3.4.2-20040916-1.tar.gz (可选)
    9. 解压缩 w32api-3.1.tar.gz
  2. 安装 mingw32-make-3.80.0-3.exe (可选)
  3. 安装 gdb-5.2.1-1.exe (可选)
  4. 安装 MSYS-1.0.10.exe (可选)
  5. 安装 msysDTK-1.0.1.exe (可选)
    1. 解压缩 msys-automake-1.8.2.tar.bz2 (可选)
    2. 解压缩 msys-autoconf-2.59.tar.bz2 (可选)
    3. 解压缩 msys-libtool-1.5.tar.bz2 (可选)

我建议将 D:\MinGW 作为所有安装和解压缩的目标目录。

值得注意的是,来自 Libre 的 GNAT 的 Windows 版本也是基于 MinGW 的。

在 MinGW 网站上的 gcc-3.4.2-release_notes.txt 中写道:请检查 /lib/gcc/mingw32/3.4.2/adainclude 和 adalib 目录中的文件是否被标记为只读。此属性对于防止使用 gnatclean 清理项目时删除它们是必要的。

因此,请务必执行此操作。

OpenCSW(适用于运行在 SPARCx86 上的 Solaris)

[编辑 | 编辑源代码]

OpenCSW 提供了 GCC 3.4.6 和 4.6.2 的二进制软件包,并支持 Ada。软件包名称分别为 gcc3ada 和 gcc4ada。

支持的语言 Ada 83、Ada 95、部分 Ada 2005、C、C++、Fortran 95、Java、Objective-C、Objective-C++
运行时库许可证 GNAT 修改的 GPL
本地平台 Oracle Solaris 和 OpenSolaris(运行在 SPARC 和 x86 上)
交叉平台
编译器后端 GCC 3.4.6 和 4.6.2(均可用)
支持 ?
可从以下网址获取: http://www.opencsw.org/
包含的附加组件 无(?)

pkgsrc:NetBSD、DragonFly、FreeBSD 和 Solaris

[编辑 | 编辑源代码]

可移植软件包文件系统 pkgsrc 拥有一个小型 Ada 框架。它目前基于 FSF GCC 5.4,并且 FSF GCC 6.2 也可用。AdaCore GPL 版本不存在,也不存在基于非 GCC 的编译器。

pkgsrc 系统以季度分支的形式发布,通常建议使用这些分支。但是,用户也可以选择“头部”,这将是最新的软件包版本。pkgsrc 系统支持 21 个平台,但对于 Ada,由于引导编译器的要求,它可能仅限于 5 个平台:NetBSD、DragonFly、SunOS(Solaris/Illumos)、OpenBSD/MirBSD 和 FreeBSD。

支持的语言 Ada 83, Ada 95, Ada 2005, Ada 2012, C, C++, ObjC, Fortran
运行时库许可证 GPLv3 附带运行时库例外 v3
本地平台 NetBSD i386 和 amd64、DragonFly x86-64、FreeBSD i386 和 amd64、Solaris i386 和 x86_64
交叉平台
编译器后端 GCC 5.4(GCC 4.9 和 6 可用)
可从以下网址获取: http://www.pkgsrc.org,状态:http://www.pkgsrc.se
支持 志愿者;公共错误数据库

有两种方法可以安装软件。最快速、最简单的方法是使用命令“pkg_add <pkg name>”安装预编译的二进制文件。例如,要安装 GNAT Programming Studio 及其所有依赖项(包括 GNAT 编译器),您只需要一个命令即可。

pkg_add gps

如果某个特定软件包不可用,或者用户只是更喜欢从源代码构建(这可能需要很长时间),那么可以使用以下命令:

cd /usr/pkg/devel/gps && bmake install

与二进制安装一样,如果缺少任何依赖项,也会先从源代码构建它们。

截至 2016 年 12 月 14 日的可用软件

目录 常用名称 版本 pkg 名称
cad/ghdl GNU VHDL 模拟器 0.32rc1 ghdl
devel/florist Florist (Posix 绑定) 2012 florist-gpl
devel/gnatpython GNATPython (基于 python 的测试框架) 2011-09-12 gnatpython
devel/gprbuild-aux GPRbuild (多语言构建工具) 2016-06-09 gprbuild-aux
lang/gcc-aux GNAT Ada 编译器 (FSF GCC) 4.9.2 (2014-10-23) gcc-aux
lang/gcc5-aux GNAT Ada 编译器 (FSF GCC) 5.4.0 (2016-06-03) gcc5-aux
lang/gcc6-aux GNAT Ada 编译器 (FSF GCC) 6.2.0 (2016-08-22) gcc6-aux
textproc/xmlada XML/Ada (库) 4.4.0 xmlada
www/aws Ada Web 服务器 3.1.0.0 (w) aws
www/aws-demos Ada Web 服务器演示 3.1.0.0 (w) aws-demos
x11/gtkada GTK/Ada(绑定) 2.24.4 gtkada

SuSE Linux

[编辑 | 编辑源代码]

所有版本的 SuSE Linux 都包含 GNAT 编译器。SuSE 9.2 及更高版本还包含 ASIS、Florist 和 GLADE 库。需要以下两个软件包。

gnat
gnat-runtime

对于 SuSE 12.1 版本,编译器位于软件包中。

 gcc46-ada
 libada46

对于 64 位系统,您还需要 32 位兼容性软件包。

gnat-32bit
gnat-runtime-32bit

Ubuntu(及其衍生产品,如 Kubuntu、Xubuntu 等)是基于 Debian 的 Linux 发行版,因此可以使用 上面描述的安装过程。图形化软件包管理器(如 Synaptic 或 Adept)也可以用于选择 Ada 软件包。

来自 Irvine Compiler Corporation 的 ICC

[编辑 | 编辑源代码]

Irvine Compiler Corporation 为各种平台提供原生和交叉编译器。[1] 编译器和运行时系统支持开发经过认证的安全关键型软件。

商业、专有。可以按要求进行免费评估。允许免费重新分发运行时系统。

来自 RR Software 的 Janus/Ada 83 和 95

[编辑 | 编辑源代码]

RR Software 提供了针对 MS-DOS、Microsoft Windows 以及各种 Unix 和类 Unix 系统的原生编译器,以及用于 Windows GUI 编程的库 CLAW。提供学术版、个人版和专业版,以及支持选项。

Janus/Ada 95 支持 Ada 2007 和 Ada 2012 特性的子集。.

商业软件,但价格相对便宜;专有。

来自 Concurrent 的 MAXAda

[编辑 | 编辑源代码]

Concurrent 提供了 MAXAda,这是一种针对 Linux/Xeon 和 PowerPC 平台的 Ada 95 编译器,以及 Ada 与 POSIX 和 X/Motif 的绑定。[2]

商业、专有。

来自 PTC 的 ObjectAda(以前称为 Aonix/Atego)

[编辑 | 编辑源代码]

PTC 提供了 ObjectAda 原生(Windows、某些版本的 Unix 和 Linux)和交叉(PPC、Intel、VxWorks 和 ERC32)编译器。

提供对 Ada 2012 的有限支持。

商业、专有。

来自 OC Systems 的 PowerAda

[编辑 | 编辑源代码]

OC Systems 提供 Ada 编译器以及与 POSIX 和 X-11 的绑定。

  • PowerAda,一种针对 Linux 和 AIX 的 Ada 95 编译器。
  • LegacyAda/390,一种针对 IBM System 370 和 390 大型机的 Ada 83 编译器。

商业、专有。

来自 PTC 的 ApexAda(以前称为 IBM Rational)

[编辑 | 编辑源代码]

PTC ApexAda,适用于原生和嵌入式开发。

商业、专有。

来自 DDC-I 的 SCORE

[编辑 | 编辑源代码]

DDC-I 提供了其用于嵌入式开发的交叉编译器 SCORE。SCORE 代表安全关键、面向对象、实时嵌入式。

商业、专有。

来自 Tartan 的 TADS

[编辑 | 编辑源代码]

Tartan 提供 Tartan Ada Development System (TADS),包含针对某些数字信号处理器的交叉编译器。

商业、专有。

来自 DXC 的 XD Ada

[编辑 | 编辑源代码]

XD Ada 是一种用于嵌入式开发的 Ada 83 交叉编译器。主机包括运行 OpenVMS 的 VAX、Alpha 和 Integrity 服务器。目标包括 Motorola 68000 和 MIL-STD-1750A 处理器。

商业、专有。

来自 XGC Software 的 XGC Ada

[编辑 | 编辑源代码]

XGC 编译器是带有自定义运行时库的 GCC,适合航空电子和空间应用。运行时内核非常小,不支持异常传播(即,您只能在引发异常的子程序中处理异常)。

商业软件,但某些版本也提供免费下载。免费软件。

支持的语言 Ada 83、Ada 95、C
运行时库许可证 GNAT 修改的 GPL
本地平台
交叉平台 主机:sun-sparc-solaris、pc-linux2*;目标是带有 ERC32MIL-STD-1750A摩托罗拉 68000 系列或 英特尔 32 位 处理器的裸板。 PowerPC英特尔 80186 目标可应要求提供。
编译器后端 GCC 2.8.1
可从以下网址获取: http://www.xgc.com/
支持 商业
包含的附加组件 符合 Ravenscar 标准的运行时内核,已通过航空航天应用认证;gdb 交叉调试器;目标模拟器。

参考文献

[编辑 | 编辑源代码]


华夏公益教科书