Введение

GNAT — это компилятор свободного программного обеспечения для языка программирования Ada, входящий в состав GNU Compiler Collection (GCC). Он поддерживает все версии языка, включая Ada 2012, Ada 2005, Ada 95 и Ada 83. Изначально название GNAT было акронимом GNU NYU Ada Translator, но в настоящее время это значение не используется. Фронтенд и среда выполнения написаны на Ada.

История

Проект GNAT начался в 1992 году, когда Военно-воздушные силы США заключили контракт с Нью-Йоркским университетом (NYU) на создание бесплатного компилятора для Ada с целью содействия процессу стандартизации Ada 9X. Контракт на 3 миллиона долларов предусматривал использование лицензии GNU GPL для всей разработки и передачу авторских прав Фонду свободного программного обеспечения. Первая официальная валидация GNAT состоялась в 1995 году. В 1994 и 1996 годах первоначальные авторы GNAT основали две дочерние компании: Ada Core Technologies в Нью-Йорке и ACT Europe (впоследствии AdaCore SAS) в Париже, для обеспечения дальнейшей разработки и коммерческой поддержки GNAT. Обе компании всегда действовали как единое целое, но формально объединились в AdaCore только в 2012 году. Изначально GNAT выпускался отдельно от основного кода GCC. 2 октября 2001 года исходный код GNAT был передан в репозиторий CVS GCC. Последней версией, выпущенной отдельно, была GNAT 3.15p, основанная на GCC 2.8.1, 2 октября 2002 года. Начиная с GCC 3.4, на основных платформах официальные релизы GCC способны успешно проходить 100% тестов ACATS Ada, входящих в тестовый набор GCC. К GCC 4.0 и более экзотические платформы также смогли успешно проходить 100% тестов ACATS.

Лицензия

Компилятор лицензируется на условиях GNU GPL 3+ с исключением для библиотеки времени выполнения GCC. В этих версиях AdaCore исключения времени выполнения удалены, что требует, чтобы программное обеспечение, связанное со стандартными библиотеками, имело лицензии, совместимые с GPL, чтобы избежать нарушения лицензионного соглашения. JGNAT представляла собой версию GNAT, которая компилировала код с языка программирования Ada в байт-код Java. GNAT для dotNET – это версия GNAT, которая компилирует код с языка программирования Ada в Common Language Infrastructure для .NET Framework, а также бесплатных и открытых реализаций Mono и Portable .NET.