Nintendo DS доморощенный с Ада?
Примечание: я очень мало знаю о наборе инструментов GCC, поэтому этот вопрос может не иметь особого смысла.
Поскольку GCC включает в себя внешний интерфейс Ada и может генерировать ARM, а devKitPro основан на GCC, возможно ли использовать Ada вместо C/C++ для написания кода на DS?
Редактировать: Кажется, что цель, которую использует devKitARM, это arm-eabi.
5 ответов
devkitPro не является набором инструментов, компилятором или каким-либо другим программным пакетом. Инструментальной цепочкой, используемой для целевой DS, является devkitARM, одна из инструментальных цепочек, предоставляемых devkitPro.
Может быть возможно создать компилятор ada, но я очень сомневаюсь, удастся ли вам когда-нибудь запустить что-нибудь полезное на самой DS. devkitPro, безусловно, никогда не предоставит компилятор ada как часть пакетов, которые мы производим.
Да, это возможно, посмотрите мой проект https://github.com/Lucretia/tamp и соберите кросс-компилятор согласно моему сценарию. После этого вы сможете настроить таргетинг на NDS с помощью Ada. Я также создал базовую RTS, которая предоставит вам локальную обработку исключений.
И @Martin Beckett, почему Ада нацелена прямо на DoD? Они отменили мандат много лет назад, и Ада легко может использоваться для любого проекта, вы же понимаете, что Ада - это язык программирования общего назначения, не так ли?
(Отказ от ответственности: я не знаю Ада)
Возможно.
Возможно, вам удастся собрать devKitPro для использования Ada, однако предварительно предоставленные двоичные файлы (по крайней мере для OS X) не имеют встроенной поддержки Ada.
Однако вы, вероятно, обнаружите, что пишете тонны "склеивающего" кода на C для взаимодействия с различными аппаратными регистрами и тому подобным.
При переносе языка на DS Nintendo DS следует учитывать относительно небольшой стек (16 КБ). Существуют возможные обходные пути, такие как перестановка содержимого стека SRAM в DRAM (4 МБ), когда стек заполняется или только весь стек в DRAM (предполагается, что он очень медленный).
И я второй Dre о том, что вам нужно будет связать себя между библиотечной функцией Ada, которую вы хотите использовать, и существующими библиотеками в DS (которые, мы надеемся, охватывают большую часть аппаратного обеспечения).
На практическом плане это невозможно.
В теоретическом плане вы могли бы использовать один собственный анализатор Ada (я нашел его на сайте ANTLR, но он довольно старый), чтобы перевести Ada на C/C++, а затем передать его в devkitpro.
Однако усилия по созданию такого переводчика, вероятно, будут равны (если не выше) созданию самой игры.