에이다(Ada)는 구조화되고 정적인 형태를 가진 명령형 및 객체 지향 고급 프로그래밍 언어이다. 1977년부터 1983년까지 미국 국방부가 수백 개의 프로그래밍 언어를 통합하고 대체하기 위해 CII 허니웰 벌의 진 이히비아가 주도한 팀에서 고안되었다. 세계 최초의 프로그래머로 알려진 에이다 러브레이스의 이름을 따서 명명되었으며, 파스칼 언어의 구조적 개념을 기반으로 설계되었다. 시스템의 안전성과 신뢰성, 유지보수성을 최우선으로 고려한 것이 특징이다.

배너 광고

개요

에이다는 파스칼(Pascal) 언어에서 처음 사용된 구조적 개념을 기반으로 만들어진 범용 프로그래밍 언어이다. 설계 방침은 어떤 프로그램이라도 기술할 수 있도록 강력하고 광범위한 기능을 갖추는 것이었다. 특히 컴파일러가 런타임 오류 대신 컴파일 단계에서 오류를 찾아내도록 유도하여 코드의 안전성과 유지보수성을 향상시킨다. 에이다는 C나 C++와 몇 가지 작업이 같지만, 매우 강력한 유형 시스템을 가진 언어로 평가된다.

역사

1977년부터 1983년까지 미국 국방부(DoD)의 계약에 따라 CII 허니웰 벌의 진 이히비아가 주도하는 팀에서 고안되었다. 당시 미국 국방부 내에서 사용되던 수백 개의 프로그래밍 언어를 단일 언어로 통합하려는 목적으로 개발이 시작되었다. 1980년 2월에 첫 번째 표준이 발표되었고, 이후 터커 태프트 등이 주도하여 객체 지향 기능 등을 추가하며 발전하였다. 언어의 이름은 세계 최초의 프로그래머로 알려진 에이다 러브레이스(Ada Lovelace)에서 따왔다.

주요 특징

에이다는 다음과 같은 기술적 특징을 보유하고 있다.

  • 강력한 유형 시스템: 매우 엄격한 타입 체크를 통해 프로그래밍 실수를 사전에 방지한다.
  • 병행성 지원: 태스크(Tasks), 동기식 메시지 전달, 보호 객체(Protected objects) 등 병행 프로그래밍을 위한 기능을 언어 차원에서 내장하고 있다.
  • 계약에 의한 설계(DbC): 프로그램의 동작을 규정하는 계약 조건을 명시적으로 지원한다.
  • 결정론적 동작: 비결정론적 요소를 제어하여 실시간 시스템이나 안전이 중요한 시스템에 적합하도록 설계되었다.

표준화 및 버전

에다는 국제 표준화 기구(ISO)와 국제 전기 표준 회의(IEC)에 의해 공동으로 정의되는 국제 기술 표준이다. 주요 버전은 다음과 같다.

버전발표 연도주요 특징
Ada 831983년초기 표준 (MIL-STD-1815)
Ada 951995년객체 지향 프로그래밍 및 병행성 강화
Ada 20052005년인터페이스 및 라이브러리 확장
Ada 20122012년계약에 의한 설계(DbC) 기능 도입
Ada 20222023년최신 표준 (ISO/IEC 8652:2023)

사용 분야

에다는 안전성과 신뢰성이 중요한 시스템에서 주로 사용된다. 대표적인 분야로는 항공 전자, 철도 신호, 의료 기기, 우주 탐사, 국방 시스템 등이 있다. 실시간 시스템에서 결정론적 동작을 보장해야 하는 임베디드 시스템에 적합하다. 또한 상업용 컴파일러와 무료 컴파일러(GNAT)가 모두 존재하여 다양한 플랫폼에서 사용 가능하다.

구현체

에이다의 주요 구현체로는 AdaCore에서 개발한 GNAT(GNU Ada Translator)가 있다. GNAT는 GCC(GNU Compiler Collection)의 일부로 제공되며, 무료로 사용할 수 있다. 그 외에도 그린 힐스 소프트웨어의 Optimising Ada 95 컴파일러, PTC의 ApexAda 및 ObjectAda, MapuSoft의 Ada-C/C++ 체인저 등이 있다. 이러한 구현체들은 다양한 운영 체제와 하드웨어 플랫폼을 지원한다.

예제 코드

다음은 에이다 언어로 작성된 표준 출력 예제이다.

with Ada.Text_IO;
procedure Hello is
begin
 Ada.Text_IO.Put_Line("Hello, world!");
end Hello;

참고 자료

7
에이다 (프로그래밍 언어)에이다 (프로그래밍 언어) 에이다(Ada)는구조화되고,정적인 형태를 가지고,명령적이며,객체 지향적인고급컴퓨터 프로그래밍언어이다. 처음에는 1977년에서 1983년까지 수백 개의 프로그래밍 언어를 대신할 목적으로 CII 허니웰 벌의진 이히비아가 주도한 팀에서 고안된 것이다. 에이다는 C나 C++와 몇 가지 작업이 같지만,…https://ko.wikipedia.org/wiki/%EC%97%90%EC%9D%B4%EB%8B%A4_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4)Ada (programming language)Ada (programming language) Ada is a structured, statically typed, imperative, and object-oriented high-level programming language, inspired by Pascal and other languages. It has b…https://en.wikipedia.org/wiki/Ada_(programming_language)IntroductionIntroduction Ada Reference Manual (Ada 2022) — Legal Information --- # Introduction 1 This is the Ada Reference Manual. 2 Other available Ada documents include: 3/5 Ada 2022 Overv…http://ada-auth.org/standards/22rm/html/RM-0-2.htmlAdaAda 史上初のプログラマとされるエイダ・ラブレスの名前にちなんでAdaと命名されている。ADAと表記するのは誤り。 フリーのコンパイラとしては、 GNATなどがある。 | Adaのロゴマークで、上側にはAdaの緑色の文字で、下側はより小さい文字で「In Strong Typing We Trust」の緑色の文字が記されています。緑色にしている理由は、選ば…https://ja.wikipedia.org/wiki/Ada에이다 - 제타위키에이다 - 제타위키 # 에이다 (Ada에서 넘어옴) --- ## 개요 Ada 에이다 - 파스칼 언어에서 처음으로 사용된 구조적 개념을 기반으로 하여 만들어진 범용 프로그래밍 언어 - 설계자: (MIL-STD-1815/Ada 83) Jean Ichbiah, (Ada 95) Tucker Taft - 1980년 등장 - 에이…https://zetawiki.com/wiki/AdaAda Reference Manual (Ada 2022)에이다 2022 표준 공식 문서http://www.ada-auth.org/standards/22rm/html/rm-0-2.htmlAdaIC (Ada Information Clearinghouse)에이다 정보 공식 웹사이트https://adaic.org

관련 문서