{{위키데이터 속성 추적}}
{{infobox programming language
| name = 에이다
| logo = [[파일:Ada horizon green logo with slogan.svg]]
| paradigm = [[프로그래밍 패러다임|다중 패러다임]]
| designer = * MIL-STD-1815/Ada 83: [[진 이히비아]](Jean Ichbiah)
* Ada 95: Tucker Taft
* Ada 2005: Tucker Taft
* Ada 2012: Tucker Taft
| developer = 
| typing = static, strong, safe, nominative
| implementations = AdaCore [[GNAT]] (무료 다운로드: http://libre.adacore.com/download),<br />[[그린 힐스 소프트웨어]] Optimising Ada 95 컴파일러,<br />[[PTC, Inc.]] PTC ApexAda and PTC ObjectAda,<ref>{{웹 인용|url=http://www.ptc.com/developer-tools/objectada |title=PTC ObjectAda |publisher=PTC.com |date=|accessdate=2014-01-27}}</ref><br />{{웹 인용|url=https://www.mapusoft.com/ada-to-c-changer/|title=MapuSoft Ada-C/C++ changer}}, 과거 이름: "AdaMagic with C Intermediate",<ref>{{웹 인용|url=http://ada-auth.org/cpl/details/151.html|title=AdaMagic with C Intermediate certificate}}</ref><br />[[DDC-I]] 스코어
| dialects = [[SPARK]], [[Ravenscar profile]]
| influenced = [[C++]], [[Chapel]],<ref name="chplspec">{{웹 인용|title=Chapel spec (Acknowledgements)|url=http://chapel.cray.com/spec/spec-0.98.pdf|date=2015-10-01|accessdate=2016-01-14|publisher=Cray Inc|archive-date=2016-02-05|archive-url=https://web.archive.org/web/20160205114946/http://chapel.cray.com/spec/spec-0.98.pdf|url-status=}}</ref> {{웹 인용|url=http://www.iuma.ulpgc.es/users/gsd/Drago/|title=Drago|확인날짜=2019-08-31|archive-date=2020-09-14|archive-url=https://web.archive.org/web/20200914212150/http://www.iuma.ulpgc.es/users/gsd/Drago/}}, [[에펠 (프로그래밍 언어)|Eiffel]], {{웹 인용|url=https://cs.nyu.edu/cs/faculty/goldberg/griffin.html|title=Griffin}}, [[자바 (프로그램이 언어)|자바]], [[님 (프로그래밍 언어)|님]], [[ParaSail]], [[PL/SQL]], [[PL/pgSQL]], [[루비 (프로그래밍 언어)|루비]], [[Seed7]], {{웹 인용|url=https://www.sparforte.com/|title=SPARforte}}, [[ParaSail|Sparkel]], [[SQL/PSM]], [[VHDL]]
| license = 
| website = {{URL|www.adaic.org}}
| year = {{시작 날짜와 나이|1980|2}}
| latest_release_version = Ada 2012 TC1<ref>{{웹 인용|url=http://www.adaic.org/2016/01/technical-corrigendum-for-ada-2012-published-by-iso/ |title=Technical Corrigendum for Ada 2012 published by ISO |publisher=Ada Resource Association |date=2016-01-29 |accessdate=2016-02-23}}</ref><ref>{{웹 인용|url=http://www.ada-auth.org/standards/ada12_w_tc1.html |title=Consolidated Ada 2012 Language Reference Manual |publisher=Ada Conformity Assessment Authority |date= |accessdate=2016-02-23 |url-status=dead |archiveurl=https://web.archive.org/web/20160303001815/http://www.ada-auth.org/standards/ada12_w_tc1.html |archivedate=2016-03-03 |df= }}</ref>
| latest_release_date = {{시작 날짜와 나이|2016|02|01}}
| latest_preview_version = Ada 2012 TC1<ref>{{웹 인용|url=http://www.ada-auth.org/corrigendum1-12.html |title=Technical Corrigendum 1 for Ada 2012 |publisher=Ada Conformity Assessment Authority |date= |accessdate=2016-02-23 |url-status=dead |archiveurl=https://web.archive.org/web/20160302231200/http://www.ada-auth.org/corrigendum1-12.html |archivedate=2016-03-02 |df= }}</ref>
| latest_preview_date = {{시작 날짜와 나이|2015|04}} <!-- Draft 3 of Ada 2012 TC1 (ISO/IEC 8652:2012/Cor 1:2016), see [http://www.ada-auth.org/standards/ada12_w_tc1.html] and [http://www.ada-auth.org/corrigendum1-12.html] -->
| turing-complete = Yes
| influenced_by = [[ALGOL 68]], [[파스칼 (프로그래밍 언어)|파스칼]], [[C++]] (Ada 95), [[스몰토크]] (Ada 95), [[Modula-2]] (Ada 95) [[자바 (프로그래밍 언어)|자바]] (Ada 2005), [[에펠 (프로그래밍 언어)|에펠]] (Ada 2012)
| operating_system = [[크로스 플랫폼]] (멀티 플랫폼)
| file_ext = .adb, .ads
}}
'''에이다'''(Ada)는 [[구조화 프로그래밍|구조화]]되고, [[유형 시스템#정적 정형|정적인 형태]]를 가지고, [[명령형 프로그래밍|명령적]]이며, [[객체 지향 프로그래밍|객체 지향적]]인 [[고급 프로그래밍 언어|고급]] [[컴퓨터 프로그래밍]] [[프로그래밍 언어|언어]]이다. 처음에는 1977년에서 1983년까지 수백 개의 프로그래밍 언어를 대신할 목적으로 CII 허니웰 벌의 [[진 이히비아]]가 주도한 팀에서 고안된 것이다. 에이다는 [[C 언어|C]]나 [[C++]]와 몇 가지 작업이 같지만, 매우 강력한 유형 시스템의 언어이다.

에이다는 컴퓨터 프로그래밍을 발명하는 데 공헌한 [[에이다 러브레이스]](1815~1852년)의 이름을 딴 것이다.

== 역사 ==
1970년대에 에이다(Ada)는 [[미국 국방성]](Department of Defence: DoD)을 위해서 개발되었고, DoD의 컴퓨터 응용 분야의 대부분이 임베디드 프로그램이었다. 하드웨어에 의존성 때문에 각기 다른 언어를 설계해서 사용되었다. 소프트웨어의 재사용성은 거의 없었다. 소프트웨어의 복잡성의 증가와 표준화되지 않은 언어들로 인하여 소프트웨어 개발 비용이 급증한다. 이러한 이유 때문에 1974년에 미국의 육, 해, 공군은 각기 독립적으로 운영되던 내장 시스템을 단일한 언어로 개발하기 위해 고급언어의 개발을 제안한다.

== 예 ==
=== 헬로 월드 ===
언어의 [[구문]]의 일상적인 예로 들 수 있는 [[헬로 월드 프로그램]]:
<syntaxhighlight lang="ada">
with Ada.Text_IO;

procedure Hello is
begin
  Ada.Text_IO.Put_Line("Hello, world!");
end Hello;
</syntaxhighlight>
=== 자료형 ===
<syntaxhighlight lang="ada">
type Day is range 1 .. 31;
type Month is range 1 .. 12;
type Year is range 1800 .. 2100;

type Date is
   record
     Day   : Day;
     Month : Month;
     Year  : Year;
   end record;
</syntaxhighlight>

=== 제어 구조 ===
<syntaxhighlight lang="ada">
while a /= b loop
  Ada.Text_IO.Put_Line ("Waiting");
end loop;

if a > b then
  Ada.Text_IO.Put_Line ("Condition met");
else
  Ada.Text_IO.Put_Line ("Condition not met");
end if;

for i in 1 .. 10 loop
  Ada.Text_IO.Put ("Iteration: ");
  Ada.Text_IO.Put (i);
  Ada.Text_IO.Put_Line;
end loop;

loop
  a := a + 1
  exit when a = 10;
end loop;

case i is
  when 0 => Ada.Text_IO.Put("zero");
  when 1 => Ada.Text_IO.Put("one");
  when 2 => Ada.Text_IO.Put("two");
end case;
</syntaxhighlight>

=== 패키지, 프로시저, 함수 ===
<syntaxhighlight lang="ada">
with Ada.Text_IO;

package Mine is

  type Integer is range 1 .. 11;

  i : Integer := Integer'First;

  procedure Print (j: in out Integer) is

    function Next (k: in Integer) return Integer is
    begin
      return k + 1;
    end Next;

  begin
    Ada.Text_IO.Put_Line ('The total is: ', j);
    j := Next (j);
  end Print;

begin
  while i < Integer'Last loop
    Print (i);
  end loop;
end Mine;
</syntaxhighlight>

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{위키공용분류-줄}}
* {{dmoz|Computers/Programming/Languages/Ada/ Ada programming language}}

{{주요 프로그래밍 언어}}
{{전거 통제}}
{{토막글|프로그래밍 언어}}

[[분류:에이다 (프로그래밍 언어)| ]]
[[분류:닷넷 프로그래밍 언어]]
[[분류:임베디드 시스템]]
[[분류:다중 패러다임 프로그래밍 언어]]
[[분류:프로그래밍 언어 표준]]
[[분류:시스템 프로그래밍 언어]]
[[분류:정적 타입 프로그래밍 언어]]
[[분류:ISO 표준 프로그래밍 언어]]
[[분류:고급 프로그래밍 언어]]