에이다 (프로그래밍 언어)
본 서비스가 제공하는 내용 및 자료가 사실임을 보증하지 않습니다. 시스템은 언제나 실수를 할 수 있습니다. 중요한 의사결정 및 법리적 해석, 금전적 의사결정에 사용하지 마십시오.
에이다(Ada)는 구조화되고 정적인 형태를 가진 명령형 및 객체 지향적 고급 프로그래밍 언어이다. 1970년대 후반 미국 국방부가 기존의 수많은 프로그래밍 언어를 통합하고 대체하기 위해 개발하였으며, 세계 최초의 프로그래머로 알려진 에이다 러브레이스(Ada Lovelace)의 이름을 따서 명명되었다. 파스칼 언어의 구조적 개념을 기반으로 설계되었으며, 시스템의 안전성과 신뢰성, 유지보수성을 최우선으로 고려한 것이 특징이다.
개요
에이다는 파스칼(Pascal) 언어에서 처음 사용된 구조적 개념을 기반으로 만들어진 범용 프로그래밍 언어이다. 설계 방침은 어떤 프로그램이라도 기술할 수 있도록 강력하고 광범위한 기능을 갖추는 것이었다. 특히 컴파일러가 런타임 오류 대신 컴파일 단계에서 오류를 찾아내도록 유도하여 코드의 안전성과 유지보수성을 향상시킨다.
역사
1977년부터 1983년까지 미국 국방부(DoD)의 계약에 따라 CII 허니웰 벌(CII Honeywell Bull)의 진 이히비아가 주도하는 팀에서 고안되었다. 당시 미국 국방부 내에서 사용되던 수백 개의 프로그래밍 언어를 단일 언어로 통합하려는 목적으로 개발이 시작되었다. 이후 터커 태프트(Tucker Taft) 등이 주도하여 객체 지향 기능 등을 추가하며 발전하였다.
주요 특징
에이다는 다음과 같은 기술적 특징을 보유하고 있다.
- 강력한 유형 시스템: 매우 엄격한 타입 체크를 통해 프로그래밍 실수를 사전에 방지한다.
- 병행성 지원: 태스크(Tasks), 동기식 메시지 전달, 보호 객체(Protected objects) 등 병행 프로그래밍을 위한 기능을 언어 차원에서 내장하고 있다.
- 계약에 의한 설계(DbC): 프로그램의 동작을 규정하는 계약 조건을 명시적으로 지원한다.
- 결정론적 동작: 비결정론적 요소를 제어하여 실시간 시스템이나 안전이 중요한 시스템에 적합하도록 설계되었다.
표준화 및 버전
에이다는 국제 표준화 기구(ISO)와 국제 전기 표준 회의(IEC)에 의해 공동으로 정의되는 국제 기술 표준이다. 주요 버전은 다음과 같다.
| 버전 | 발표 연도 | 주요 특징 |
|---|---|---|
| Ada 83 | 1983년 | 초기 표준 (MIL-STD-1815) |
| Ada 95 | 1995년 | 객체 지향 프로그래밍 및 병행성 강화 |
| Ada 2005 | 2005년 | 인터페이스 및 라이브러리 확장 |
| Ada 2012 | 2012년 | 계약에 의한 설계(DbC) 기능 도입 |
| Ada 2022 | 2023년 | 최신 표준 (ISO/IEC 8652:2023) |
예제 코드
다음은 에이다 언어로 작성된 표준 출력 예제이다.
with Ada.Text_IO;
procedure Hello is
begin
Ada.Text_IO.Put_Line("Hello, world!");
end Hello;
