Современный переводчик Ada в C / C ++ [закрыто]

Есть ли какой-нибудь конвертер источника-источника (переводчик) из Ada (95, 2005) в C? Насколько они полны (могут ли они преобразовать каждую функцию Ada в gnu c99 + pthreads + POSIX)?

Можно ли использовать такой переводчик ada-to-c в критических приложениях?

PS: Переводчики на C ++ (до 2003 года с расширениями GNU) также приветствуются.

PPS: когда указано «gnu c99», это означает только то, что поддерживается большинство расширений gnu C99 +, но не означает GCC.

 Marc C30 мая 2012 г., 15:37
Какое оборудование?
 NWS30 мая 2012 г., 16:13
Если у вас есть собственное оборудование, где вы взяли для него компилятор C?
 osgx30 мая 2012 г., 15:36
Потому что для какого-то оборудования нет ADA.
 Mat30 мая 2012 г., 15:33
Почему бы не использовать компилятор AD
 Marc C30 мая 2012 г., 15:44
@ Mat, кажется, это распространенное заблуждение (я слышал это дважды за последний месяц :-), что если GCC ориентируется на платформу, вы получаете Ada бесплатно. Нет, так не работает.

Ответы на вопрос(2)

открытый источни Ada-to-C переводчик. Единственный, кого я знал вообще, был SofCheck's, который по сообщениям был довольно хорош.

тех пор @SofCheck был куплен AdaCore, и я сделалочен краткий поиск переводчика на сайте AdaCore, и ничего не выпрыгнуло. Вы можете спросить их по адресу [email protected], если вам подходит коммерческое решение. (По крайней мере, получить цену.)

 T.E.D.30 мая 2012 г., 18:25
Обратите внимание, что автор этого переводчика также был нанят AdaCore, поэтому кто-то должен иметь ответ.
 OCTAGRAM19 февр. 2017 г., 01:46
Я подтверждаю, что в MapuSoft действительно есть AdaMagic, и это хорошо работает. Также С. Такер Тафт из Google+ рассказал, что AdaCore разрабатывает SPARK2C
 osgx30 мая 2012 г., 15:45
Благодарность. Что вы можете сказать о: Adatoccpp.sourceforge.net (неполный?) и Mapusoft.com / Продукты / ADA-чейнджер?
 Ira Baxter30 мая 2012 г., 15:45

ия (например, клиент требует этого, или у вас уже есть большое приложение, закодированное в Ada, которое вы хотите использовать), вероятно, будет гораздо менее болезненным, если вы просто кусаете и код вашего решения в хорошо продуманной C99 или C ++, как вы считаете нужным.

Если ты настаиваешь, переводчик Софчек может быть лучшим; они долго над этим работали.

В противном случае вы можете (?) Построить транслятор, начиная с вывода ASIS компилятора Ada. Скорее всего, это довольно трудоемкая работа, поскольку у Ada довольно точная семантика, которую лучше сохранить, если вы хотите просто небрежно кодировать в Ada, переводить и запускать. Будет еще больше работы, если вы хотите, чтобы результат был «красивым» для конечного потребителя. (Долгосрочное обслуживание должно быть рассмотрением). Я подозреваю, что реализация кода для имитации свиданий Ады может быть довольно сложной, будучи одновременно семантически сложной и асинхронной. Настоящий недостаток этого подхода заключается в том, что это много работы; может быть, просто продолжить свою жизнь и кодировать само приложение в чем-то не-ада было бы меньше усилий.

Смотри мои замечания наеревод на язык сделан пло и альтернативные методы.

 T.E.D.30 мая 2012 г., 18:23
Это половина правильного ответа, но переписывать идеально работающий код, когда вам не нужно, действительно глупо. Мне все равно, на каком языке это было написано, и каковы предполагаемые преимущества нового языка. Если вы не можете получить компилятор, это другое дело, но это не было заявлено здесь.
 T.E.D.30 мая 2012 г., 18:30
... + половина в том, что переписывание обычно лучше, чем попытки ручного перевода. Вы все равно получите что-то, что нужно отлаживать и тестировать так же, как и оригинальный продукт, когда он был совершенно новым.
 Ira Baxter31 мая 2012 г., 07:54
Я не собирался подразумевать, что он должен переписать приложение. На самом деле, ОП не сказал, если онбыл Ада-программа, только он хотел использовать Ада-компилятор; Я (по ошибке?) Предположил, что он собирается написать новое приложение. Если у него есть программа Ada, то автоматический перевод любого качества, вероятно, будет лучше (менее затратным, быстрым, менее рискованным), чем ручная перезапись, согласился. Я пересмотрел ответ, чтобы прояснить ситуацию.

Ваш ответ на вопрос