2008-09-28 3 views
3

참고 : GCC 툴체인에 대해서는 거의 알지 못해서이 질문은별로 의미가 없을 수 있습니다.Ada와 Nintendo DS homebrew?

GCC는 Ada 프런트 엔드를 포함하고 있으며 ARM을 방출 할 수 있으며 devKitPro는 GCC를 기반으로하므로 DS에 코드를 작성하는 데 C/C++ 대신 Ada를 사용할 수 있습니까?

편집 : devKitARM이 사용하는 대상은 arm-eabi입니다.

+0

내가 왜 물어 봐야하는지! !!!!!! –

+0

충분히 공정한 - 나는 Nintendo를 타겟으로하는 일부 국방부 프로젝트를 생각하고 있었다. –

답변

1

(면책 조항 : 나는 Ada를 모른다)

아마도 가능합니다.

당신은 에이다를 사용하는 devKitPro을 구축 할 수 있습니다, 그러나, (최소한의 OS X에 대한) 사전 제공 한 바이너리 에이다 지원이 컴파일하지 않습니다.

을하지만, 당신은 아마 자신을 발견 할 것이다

다양한 하드웨어 레지스터 등과의 인터페이스를위한 수많은 "Clue"코드를 작성합니다.

2

닌텐도 DS에 언어를 이식 할 때 고려할 사항 중 하나는 상대적으로 작은 스택 (16KB)입니다. 스택이 가득 찼을 때 DRAM (4MB)에 SRAM 스택 내용을 스왑하거나 DRAM (전체적으로 느린 것으로 가정)에 전체 스택이있는 경우와 같은 가능한 해결 방법이 있습니다.

그리고 나는 당신이 사용하고자하는 Ada 라이브러리 기능과 DS의 기존 라이브러리 (실제로 대부분의 하드웨어 항목을 다루고 있음) 사이에 접착제를 제공해야한다는 사실을 두 번째로 염두에 두었습니다.

+1

그래, 스택 오버플로가 발생하지 않도록 조심하십시오. :) – unwind

6

devkitPro는 툴체인, 컴파일러 또는 실제로 모든 소프트웨어 패키지가 아닙니다. DS를 대상으로하는 툴 체인은 devkitPro에서 제공하는 툴킷 중 하나 인 devkitARM입니다.

ada 컴파일러를 빌드하는 것이 가능할 수도 있지만 DS 자체에서 실행되는 유용한 것을 얻을 수 있다면 정말 의심 스럽습니다. devkitPro는 우리가 생산하는 패키지의 일부로 절대 ada 컴파일러를 제공하지 않습니다.

+2

모르는 사람들에게 WinterMute는 devkitPro의 관리자이자 창설자입니다. – LiraNuna

0

실제 비행기에서는 불가능합니다.

이론적 인면에서 Ada를 C/C++로 번역 한 다음 devkitpro로 피드하려면 하나의 맞춤 Ada 파서 (은 ANTLR 사이트에 있지만 꽤 오래된 파일)를 사용할 수 있습니다.

그러나 이러한 번역기를 만드는 노력은 아마도 게임 자체를 만드는 것과 같을 것입니다 (그 이상은 아닙니다).

+0

Ada를위한 컴파일러 또는 번역기 작성은 너무 많은 작업으로 그 자체로 거대한 프로젝트입니다. 매우 기본적인 Ada-> C/C++ 변환기가 가능합니다. – Lucretia

3

예 가능합니다. 내 프로젝트 https://github.com/Lucretia/tamp을보고 내 스크립트에 따라 크로스 컴파일러를 빌드하십시오. 그런 다음 Ada를 사용하여 NDS를 타겟팅 할 수 있습니다. 로컬 RTS를 빌드하여 로컬 예외 처리를 제공합니다.

@Martin Beckett, 왜 Ada는 국방부의 물건을 정면으로 겨냥한다고 생각합니까? 그들은 몇 년 전에 명령을 내 렸습니다. Ada는 어떤 프로젝트에도 쉽게 사용할 수 있습니다. Ada는 범용 프로그래밍 언어입니다. 그렇지 않습니까?

+0

크로스 도구를 사용하여 DS를 타겟팅 할 계획입니다. 어쩌면 먼저 GBA를 목표로 삼을 것입니다. – oenone

+0

나는 최근에 추한 해킹을 사용하지 않고 GCC 4.6.2를 사용하여 멋진 크로스 빌드를 얻었습니다. 링크를 보려면 내 경력 2.0 프로필을 참조하십시오. 스크립팅되지 않았지만 지침은 위 링크에 있습니다. – Lucretia

관련 문제