Ada 프로그램의 기본 구조와 핵심 요소

Ada 프로그램이 일반적으로 어떤 구조를 가지며, 어떤 핵심 요소들로 구성되는지 좀 더 자세히 살펴보겠습니다. 이 기본 구조를 이해하는 것은 더 복잡하고 체계적인 Ada 프로그램을 작성하기 위한 필수적인 단계입니다.

기본적인 프로그램 구조: 프로시저 (procedure)

프로시저는 특정 작업을 수행하는 일련의 명령들을 묶어놓은 것입니다.

-- 프로시저 선언 시작 (procedure declaration start)
procedure Procedure_Name is
   -- 선언부 (declarative part): 변수, 상수, 타입 등을 선언합니다.
   local_variable : Integer := 10; -- 예시: 정수형 변수 선언 및 초기화
begin
   -- 실행부 (sequence of statements): 실제 실행될 명령들을 작성합니다.
   -- 예: Put_Line("Some action");
   null; -- 아무 작업도 하지 않음 (예시)
-- 프로시저 종료 (procedure end)
end Procedure_Name;Code language: Ada (ada)
  • procedure Procedure_Name is: 프로시저의 시작을 알리고 이름을 정의합니다. Procedure_Name 자리에 원하는 프로시저 이름을 사용합니다. is 키워드 뒤부터 begin 키워드 앞까지는 선언부(declarative part)입니다.
  • 선언부 (declarative part): 프로시저 내에서 사용할 변수(variable), 상수(constant), 사용자 정의 타입(type), 중첩된 서브프로그램(nested subprogram) 등을 선언하는 공간입니다.
  • begin: 프로시저의 실제 실행 코드(명령)가 시작됨을 알립니다. begin 키워드부터 end 키워드 앞까지는 실행부(sequence of statements)입니다.
  • 실행부 (sequence of statements): 프로그램이 수행해야 할 구체적인 작업들을 나열합니다. Put_Line과 같은 문장들이 여기에 위치합니다.
  • end Procedure_Name;: 프로시저의 끝을 알립니다. 프로시저 이름(여기서는 Procedure_Name)을 다시 명시하고 세미콜론(;)으로 마무리합니다.

모듈화의 핵심: 패키지 (package)

Ada의 가장 강력한 기능 중 하나는 패키지(package)입니다. 패키지는 관련된 데이터 타입, 변수, 상수, 서브프로그램(프로시저와 함수) 등을 하나의 논리적인 단위로 묶는 방법입니다. 이를 통해 코드를 모듈화하고 재사용성을 높이며, 정보 은닉(information hiding)을 구현할 수 있습니다.

  • with Package_Name;: 특정 패키지(Package_Name)를 현재 프로그램 단위에서 사용하겠다고 선언하는 것입니다. 이를 통해 해당 패키지 안에 정의된 기능들에 접근할 수 있게 됩니다. Ada.Text_IO는 표준 라이브러리에서 제공하는 텍스트 입출력 관련 기능을 모아놓은 패키지입니다.
  • use Package_Name;: 패키지 이름을 매번 명시하지 않고도 해당 패키지 내부의 요소(예: Put_Line)를 직접 사용할 수 있게 해줍니다. use를 사용하지 않으면 Ada.Text_IO.Put_Line(...)처럼 전체 이름을 써야 합니다.
  • 패키지 구조: 일반적으로 패키지는 두 개의 파일로 나뉩니다.
    • 명세 파일 (.ads): 패키지가 외부에 제공하는 기능(타입, 변수, 서브프로그램 선언 등)을 정의합니다. 인터페이스 역할을 합니다.
    • 구현 파일 (.adb): 명세 파일에서 선언된 서브프로그램의 실제 구현 코드를 담습니다. 내부 구현 로직은 외부에 감춰집니다 (정보 은닉).

핵심 문법 요소

  • 세미콜론 (;): Ada에서 세미콜론은 매우 중요합니다. 대부분의 선언(declaration)과 문장(statement)은 세미콜론으로 끝나야 합니다. (단, procedure ... is, begin 등 특정 구조 키워드 뒤에는 붙지 않는 경우도 있습니다.)
  • 주석 (--): 이중 하이픈(--) 뒤에 오는 텍스트는 주석으로 처리되어 컴파일러가 무시합니다. 코드에 대한 설명을 추가할 때 사용합니다.
  • 키워드 (keywords): procedure, is, begin, end, with, use, package, if, then, else, loop, while, for 등 Ada 언어에서 특별한 의미를 가지는 예약어들입니다.
  • 식별자 (identifiers): 프로시저, 변수, 상수, 타입 등의 이름을 의미합니다. 보통 영문자로 시작하며, 영문자, 숫자, 밑줄(_)을 포함할 수 있습니다. 대소문자를 구분하지 않는 것이 일반적입니다.

요약

Ada 프로그램은 기본적으로 프로시저함수와 같은 서브프로그램 단위로 구성되며, 이들은 관련된 요소들과 함께 패키지로 묶여 관리될 수 있습니다. 프로그램 단위는 선언부실행부로 나뉘며, withuse 절을 통해 필요한 라이브러리(패키지)를 가져와 사용합니다. 이러한 구조적인 특징들은 Ada가 대규모 프로젝트에서도 코드의 명확성, 재사용성, 유지보수성을 높이는 데 기여합니다.

답글 남기기

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