Портирование на Itanium & Gnat Ada

Приложение, разработанное в Ada 83 с платформой OpenVMS, должно быть перенесено в Itanium с помощью компилятора GNAT Ada.

  1. Каковы риски этого порта?

  2. Есть ли общий план приемки для миграции в общем виде.

  3. Как я могу проверить это приложение, зная, что существует разница в управлении с плавающей запятой между GNAT Ada и DEC Ada.

3 ответа

Проблемы с типами с плавающей запятой будут обнаружены во время компиляции. Я не могу вспомнить пределы, которые имеет DEC Ada, но мой опыт работы с GNAT на архитектурах Intel состоит в том, что вы можете иметь до 18 значащих цифр, что больше, чем я мог иметь с GNAT на DEC Alpha.

Я работал над одним приложением, которое было перенесено из DEC Ada в GNAT. Насколько я понял, все проблемы с портированием были связаны либо с предложениями представления, либо с простыми ошибками в исходном тексте, которые DEC Ada не обнаружила.

Я предполагаю, что вы должны рассчитать с 1 день /M строк + 2 часа / пункт представления.

И затем, конечно, время для запуска полного набора тестов.

DEC нанял ACT (теперь AdaCore), чтобы сделать совместимым с GNAT DEC-компилятором, поэтому самым большим усилием может быть то, чтобы сообщить GNAT, каковы имена файлов. Как только GNAT знает, какие файлы содержат какие блоки Ada, опция -gnat83 должна обрабатывать все, кроме кода, специфичного для платформы, и может указывать на код, специфичный для платформы, который он не может обработать. С опцией -gnat95 вы можете столкнуться с еще несколькими несоответствиями, но компилятор должен указать на них, и большая часть кода Ada-83 является действительной Ada 95.* Переход к более поздним версиям языка (-gnat05 и -gnat12) будет увеличить возможности для проблем.

После того, как вы все настроите так, чтобы GNAT мог скомпилировать ваш код, компиляция с -gnat83 должна дать вам представление о необходимых усилиях. Скорее всего, он окажется довольно маленьким.

* Однажды я переставил несколько тысяч точек с запятой кода Ada-83 в Ada 95 просто перекомпиляцией. Конечно, этот код был должным образом разработан и реализован так, чтобы быть независимым от компилятора и платформы, и, к счастью, не использовал ни одно из новых зарезервированных слов Ada-95 в качестве идентификаторов. YMMV

Я вижу это очень поздно. Просто точность о FP. Вы можете использовать специфичные для DEC FP с GNAT. Вам просто нужно перекомпилировать все библиотеки ada, указав, что вы выбрали формат DEC fp.

Другие вопросы по тегам