2010-01-14 4 views
15

Я занимаюсь изучением торговли для разработки Ada в Linux. Есть ли у вас хорошие рекомендации для компилятора/ОС?Ada компиляторы для Linux

До сих пор у меня есть GNAT от AdaCore, работающего на CentOS 5.4, и у меня есть запросы на лицензию для Rational Apex и Aonix ObjectAda.

Это усилия по переносу. Исходной кодовой базой является Apex 3.0 на OSF1 4.0d.

Что-нибудь еще я должен рассмотреть? В идеале это будет поддерживаемая среда.

+5

Переписывание не является вариантом. Это 1,5 миллиона строк кода. – Dave

+1

GNAT работает в Linux, в общем, поэтому вам не нужно беспокоиться о конкретном дистрибутиве. Фактически, версия GNSS для FSF распространяется как часть всех основных дистрибутивов Linux. Поддержка GNU, поддерживаемая AdaCore, может быть немного ограничена по распространению, вам придется с ними проверить. –

+1

О, и я один раз поделл 1,2 MSLOC от Ada (GNAT) и около 200 KSLOC из C (gcc) от Silicon Grahics/IRIX до PC/Linux в течение 4-месячного периода пару лет назад. Ада заняла около 2 недель, я потерял много волос за остальными ... (:-) –

ответ

12

Одна из проблем, которую необходимо учитывать, заключается в том, чтобы определить, в какой степени ваша система, которая портирована, использует поставляемые поставщиком пакеты для выполнения своей функции. То, что я видел с более старыми, большими системами, особенно с Apex, - это склонность гуру-языку в течение его времени разработки, чтобы решить, что ваниль Ada просто недостаточно хороша и так привязана ко всем этим пакетам, поставляемым поставщиками. Если это то, что ваша система делает прямо сейчас, это сильный аргумент в пользу модернизации внутри вендора и использования Apex (при прочих равных условиях).

Всякий раз, когда я делал порты таких систем, если бы у меня была возможность, я изо всех сил старался вырвать все поставляемые поставщиком вещи - девять раз из десяти, заменив специфические для вендора вещи ванильными реализациями Ada работали так же хорошо, и вам больше не нужно иметь дело с причудами пакета, специфичного для компилятора. Кроме того, вы повышаете переносимость и поддерживаемость системы, позволяя ей лучше адаптироваться к будущим изменениям.

+0

Спасибо, это отличный совет для рассмотрения. За исключением любых стоящих новых рекомендаций компилятора в ближайшие несколько дней, я отмечу это как ответ. – Dave

+0

P.S Я вижу по вашему профилю вы в Алабаме, и вы отвечаете на вопросы Ады. Да, вы должны быть в Хунствилле? – Dave

+0

Получил это в 1 :-) Хотите передать на аутсорсинг порт? –

4

Всегда есть SPARK, но я считаю его специализированной/подмножественно-версией языка Ada. Вы можете обратиться в SigAda или группу Ada usenet, чтобы узнать, есть ли другие идеи.

Честно говоря, GNAT - отличный набор инструментов. Вы можете использовать GNATBench, интерфейс Eclipse или GPS, легковесную GTK + IDE, чтобы взаимодействовать с инструментами GNAT.

+0

Да, GNAT хорошо выглядит до сих пор. Спасибо, SPARK, спасибо. – Dave

+0

Вы правы; SPARK - это подмножество или надмножество Ada. Спасибо, в любом случае. – Dave

+1

SPARK - это технически единая система разработки и проверки программного обеспечения, которая использует подмножество Ada в качестве рабочего языка. –

1

Другие компиляторы Я в курсе являются Green Hills AdaMULTI (для различных ОСРВ), и DDC-I's SCORE (также для различных ОСРВ)

+0

Да, я их нашел, но я не вижу поддержки Linux. Это удивительно для меня. – Dave

+0

Никакой реальной поддержки Windows, кроме целевых симуляторов. Товарные ОС не являются их рынком, я не думаю. –

Смежные вопросы