2016-12-19 1 views

답변

3

동일한 코드 기반에서 DEC Ada 버전을 계속 유지할 필요가 없다고 가정합니다. 적어도 두 가지 가능한 기술적 인 장애물이 있습니다.

먼저 GNAT에서 사용하는 file naming conventions (사용자는 말하지 않지만 GNAT를 사용한다고 추측합니다). 파일 pkg.adb에있을 것입니다 그래서

package Pkg is 
    ... 
end Pkg; 

파일 pkg.ads에있을 것, 그리고

package body Pkg is 
    ... 
end Pkg; 

: 기본적으로 GNAT는 각각의 파일을 하나 개의 컴파일 단위 (규격이나 신체)를 포함 할 예정이다. with Pkg;을 시작하는 파일을 컴파일 할 때 GNAT는 이 아닌 대/소문자를 구분하지만 대소 문자를 구별하지 않는 파일 시스템이있는 Windows 나 macOS에서 벗어나므로 pkg.ads을 찾습니다.

이렇게하려면 gnatchop을 사용할 수 있습니다.

gnatchop *.ada chopped 

는 GNAT 디렉토리 chopped/에 기대하는 파일에 모든 *.ada 소스 파일을 분할합니다.

여기에 잘못 될 수있는 한 가지는 주어진 단위가 둘 이상의 소스 파일에있는 경우입니다. 어느 환경을 유지할 것인지 (또는 다른 환경을 다루기 위해 두 가지 버전이 모두 필요한 경우 수행 할 작업)를 결정해야합니다. 사용자의 요구에 부합하지 않는

gnatchop 경우 gnatname (위 참조, 또는 this answer)을 시도 할 수 있습니다.

둘째, DEC Ada는 많은 VMS 관련 기능을 지원했습니다. 이것이 당신에게 영향을 미치는지 여부는 응용 프로그램의 원래 프로그래머들이 얼마나 광범위하게 그것을 사용 했느냐에 달려 있습니다. 가장 좋은 방법은 가야한다는 것입니다. (다른 질문으로 제발!)

1

Ada를 하나의 컴파일러/플랫폼에서 다른 플랫폼 (예 : Just Do It)으로 포팅 할 때마다 항상 수영장의 끝까지 뛰어갑니다.

gnatchop 또는 gnatname (Simon의 대답에 따라)을 사용하여 파일 이름을 처리하고, 프로젝트 파일을 설정하고 (gps 내에서 대화식으로 수행) F4 키를 누릅니다. 빌드 메인).

필요하면 수정하십시오.

관련 문제