Ada: 실행 파일 만들기

우리가 작성한 Ada 코드를 컴퓨터에서 실행할 수 있는 파일로 만들려면 어떻게 해야 할까요? 지금부터 그 방법을 함께 알아보겠습니다.

Ada에서는 독립적으로 실행되는 프로그램의 가장 기본적인 시작점을 프로시저(procedure) 로 만듭니다.

1. 가장 기본적인 실행 파일:

먼저, 아무 작업도 하지 않는 가장 간단한 프로그램을 만들어 봅시다.

-- 파일 이름: minimal_program.adb
procedure Minimal_Program is
begin
   null; -- 아무것도 안 함
end Minimal_Program;Code language: Ada (ada)
  • 코드 설명: procedure 이름 is begin ... end 이름; 이 기본 틀입니다. beginend 사이에 실제 할 일을 적는데, 여기서는 null;을 사용하여 아무 작업을 하지 않습니다.
  • 컴파일: 터미널에서 gnatmake minimal_program.adb 를 실행하여 컴파일합니다.
  • 실행: ./minimal_program 을 실행합니다. (아무 일도 하지 않습니다.)

이 프로그램을 실행하면 성공적으로 조용히 종료되지만, 운영체제에 ‘성공했다’고 명시적으로 알려주지는 않습니다만 결과적으로 0이 반환됩니다.

2. 종료 상태(Exit Status) 명시적으로 반환하기:

우리가 만든 프로그램이 성공적으로 끝났는지, 아니면 오류가 있었는지 운영체제에 명확히 알려주고 싶을 때가 있습니다. 이때 종료 상태 값을 사용합니다. 일반적으로 성공은 0, 실패나 오류는 0이 아닌 값으로 약속합니다. Ada에서는 Ada.Command_Line 패키지의 Set_Exit_Status 프로시저를 사용합니다.

-- 파일 이름: status_program.adb
-- Set_Exit_Status 기능을 사용하기 위해 추가했습니다.
with Ada.Command_Line;

procedure Status_Program is
begin
  -- 프로그램이 종료될 때 운영체제에 반환할 종료 상태 코드(exit status code) 를 설정합니다.
  -- Ada.Command_Line.Success: 성공(보통 0)을 의미하는 약속된 값입니다.
  -- Failure(보통 1)나 다른 정수 값을 사용할 수도 있습니다.
  Ada.Command_Line.Set_Exit_Status (Code => Ada.Command_Line.Success); -- 성공(0) 상태 설정
end Status_Program;Code language: Ada (ada)

코드 설명:

Code =>: 이 부분은 우리가 전달할 종료 상태 값(타입은 Ada.Command_Line.Exit_Status)을 받는 파라미터의 공식적인 이름이 Code 임을 명시적으로 나타냅니다. 이런 방식을 명명된 파라미터 연관(named parameter association) 이라고 합니다. 명명된 파라미터 연관은 코드의 의미를 명확히 보여주는 장점이 있습니다.

Set_Exit_Status는 파라미터가 Code 하나뿐이므로, 사실 Code => 부분을 생략하고 다음과 같이 값만 전달하는 위치적 파라미터 연관(positional parameter association)도 가능합니다. 위치적 파라미터 연관은 코드를 더 간결하게 해줍니다. 상황과 개인/팀의 코딩 스타일에 따라 더 적절한 방식을 선택할 수 있습니다.

Ada.Command_Line.Set_Exit_Status(Ada.Command_Line.Success); -- 'Code =>' 생략Code language: Ada (ada)

컴파일: gnatmake status_program.adb

실행 및 상태 확인:

./status_program
echo $?Code language: Shell Session (shell)

이제 ./status_program을 실행한 후 echo $?를 실행하면, 우리가 코드에서 Code 파라미터를 통해 명시적으로 설정한 값인 0 (성공 상태)이 출력되는 것을 확인할 수 있습니다.

핵심 요약: Ada 실행 파일을 만들려면 메인 procedure를 작성해야 합니다. 프로그램의 성공/실패 여부를 운영체제에 명시적으로 알리려면 with Ada.Command_Line;을 추가하고 Ada.Command_Line.Set_Exit_Status를 호출하여 Code 파라미터에 원하는 종료 상태 값을 설정할 수 있으며, 이 값은 쉘에서 echo $? 로 확인할 수 있습니다. 호출 시 Code => 는 생략 가능합니다.


답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다