ada95 имеет 3 файла .ali, .adb и .o - могу ли я скомпилировать

Я нашел старую работу из колледжа с моим последним проектом Ada95. К сожалению, диск был поврежден, и мне удалось восстановить только 3 файла (исходник и исполняемый файл восстановить не удалось):

проект.adb, проект.али и проект.о

Этих 3 файлов достаточно для компиляции нового exe? Сейчас я загружаю компилятор gnat, но должен признать, что забыл почти все, что связано с ada...

откровенный

[EDIT] Shucks .... использование GCC для компиляции проекта.adb выдает ошибку об отсутствующем файле объявлений, который я не могу восстановить.

Можно ли извлечь / скомпилировать только файлы «.o» или «.ali»? Или я наелся?


person frank    schedule 31.01.2010    source источник
comment
Вопрос, который никто не задавал: КАКОЙ отсутствует файл .ads? Если это стандартный пакет, вы можете скачать и установить ... игру дальше. Если это часть реальных исходников проекта, то не повезло.   -  person user_1818839    schedule 27.02.2014


Ответы (2)


project.adb является исходным файлом.

Поскольку вы говорите, что gcc жалуется на отсутствие файла .ads, это указывает на то, что project.adb содержит тело пакета. Вы можете вручную создать соответствующую спецификацию пакета, добавив в package.ads следующее:

package Project is
end Project;

Теперь этого почти наверняка недостаточно, потому что в спецификации проекта, вероятно, были некоторые объявления типов и констант, поэтому вам придется проанализировать тело вашего пакета и определить, на что он ссылается. Сделайте вывод, как должны выглядеть эти объявления, и добавьте их. Да, и если тело вашего пакета содержит какие-либо пакеты, не являющиеся частью стандартной библиотеки Ады, вам также придется восстановить их.

Если вам удастся получить обратно спроектированную спецификацию и тело для компиляции, вам все равно придется создать программу «драйвер», которая «с» пакетом проекта и вызывает любые функции и / или процедуры, которые выполняли функцию ваш проект (и вам также придется включить в спецификацию спецификации этих подпрограмм, которые соответствуют их внешнему виду в теле пакета).

Честно говоря, если бы это был я, я бы потратил больше времени на попытки использовать некоторые инструменты восстановления диска, чтобы вытащить все, что я мог с диска.

person Marc C    schedule 31.01.2010

В Ada95 (и 2005) в основном работают с файлами adb (иногда с файлами объявлений), все остальное генерируется на ходу. В вашем случае файл adb наверняка связан с другими файлами объявлений.

Тем не менее, файлы объявлений обычно представляют собой небольшие программы (очевидно, если вы не пытаетесь делать действительно экзотические вещи, такие как «обедающие философы»), которые относятся к алгоритмической/математической структуре программы, если вы можете выяснить, что вы сделали в своем проекте, тогда восстановить его не должно быть невозможно!

person Arkapravo    schedule 26.02.2010