에이다 (프로그래밍 言語)

위키百科, 우리 모두의 百科事典.

에이다
패러다임 多重 패러다임
設計者
  • MIL-STD-1815/Ada 83: 진 이히비아 (Jean Ichbiah)
  • Ada 95: Tucker Taft
  • Ada 2005: Tucker Taft
  • Ada 2012: Tucker Taft
發表日 1980年 2月 (44年 前) ( 1980-02 )
最近 버전 Ada 2012 TC1 [1] [2]
最近 버전 出市日 2016年 2月 1日 (8年 前) ( 2016-02-01 )
미리보기 버전 Ada 2012 TC1 [3]
미리보기 버전 出市日 2015年 4月 (9年 前) ( 2015-04 )
資料型 體系 static, strong, safe, nominative
運營 體制 크로스 플랫폼 (멀티 플랫폼)
파일 擴張字 .adb, .ads
웹사이트 www .adaic .org
主要 具現體
AdaCore GNAT (無料 다운로드: http://libre.adacore.com/download ),
그린 힐스 소프트웨어 Optimising Ada 95 컴파일러,
PTC, Inc. PTC ApexAda and PTC ObjectAda, [4]
“MapuSoft Ada-C/C++ changer” .   , 過去 이름: "AdaMagic with C Intermediate", [5]
DDC-I 스코어
方言
SPARK , Ravenscar profile
影響을 받은 言語
ALGOL 68 , 파스칼 , C++ (Ada 95), 스몰토크 (Ada 95), Modula-2 (Ada 95) 자바 (Ada 2005), 에펠 (Ada 2012)
影響을 준 言語
C++ , Chapel , [6] “Drago” . 2020年 9月 14日에 原本 文書 에서 保存된 文書 . 2019年 8月 31日에 確認함 .   , Eiffel , “Griffin” .   , 자바 , , ParaSail , PL/SQL , PL/pgSQL , 루비 , Seed7 , “SPARforte” .   , Sparkel , SQL/PSM , VHDL

에이다 (Ada)는 構造化 되고, 政敵인 形態 를 가지고, 命令的 이며, 客體 志向的 高級 컴퓨터 프로그래밍 言語 이다. 처음에는 1977年 에서 1983年 까지 數百 個의 프로그래밍 言語를 代身할 目的으로 CII 허니웰 벌의 진 이히비아 가 主導한 팀에서 考案된 것이다. 에이다는 C C++ 와 몇 가지 作業이 같지만, 매우 强力한 類型 시스템의 言語이다.

에이다는 컴퓨터 프로그래밍을 發明하는 데 貢獻한 에이다 러브레이스 (1815年-1852年)의 이름을 딴 것이다.

歷史 [ 編輯 ]

1970年代에, 에이다(Ada)는 美國 國防省(Department of Defence: DoD)을 위해서 開發되었고, DoD의 컴퓨터 應用 分野의 大部分이 임베디드 프로그램이었다. 하드웨어에 依存性 때문에 各其 다른 言語를 設計해서 使用되었다. 소프트웨어의 再使用性은 거의 없었다. 소프트웨어의 複雜性의 增加와 標準化되지 않은 言語들로 인하여 소프트웨어 開發 費用이 急增한다. 이러한 理由 때문에, 1974年에 美國의 陸, 해, 空軍은 各其 獨立的으로 運營되던 內臟 시스템을 單一한 言語로 開發하기 위해 高級言語의 開發을 提案한다.

[ 編輯 ]

헬로 월드 [ 編輯 ]

言語의 口文 의 日常的인 例로 들 수 있는 헬로 월드 프로그램 :

with
 Ada.Text_IO
;


procedure
 Hello
 is

begin

  Ada
.
Text_IO
.
Put_Line
(
"Hello, world!"
);

end
 Hello
;

資料型 [ 編輯 ]

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
;

制御 救助 [ 編輯 ]

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
;

패키지, 프로시저, 函數 [ 編輯 ]

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
;

各州 [ 編輯 ]

  1. “Technical Corrigendum for Ada 2012 published by ISO” . Ada Resource Association. 2016年 1月 29日 . 2016年 2月 23日에 確認함 .  
  2. “Consolidated Ada 2012 Language Reference Manual” . Ada Conformity Assessment Authority. 2016年 3月 3日에 原本 文書 에서 保存된 文書 . 2016年 2月 23日에 確認함 .  
  3. “Technical Corrigendum 1 for Ada 2012” . Ada Conformity Assessment Authority. 2016年 3月 2日에 原本 文書 에서 保存된 文書 . 2016年 2月 23日에 確認함 .  
  4. “PTC ObjectAda” . PTC.com . 2014年 1月 27日에 確認함 .  
  5. “AdaMagic with C Intermediate certificate” .  
  6. “Chapel spec (Acknowledgements)” (PDF) . Cray Inc. 2015年 10月 1日. 2016年 2月 5日에 原本 文書 (PDF) 에서 保存된 文書 . 2016年 1月 14日에 確認함 .  

外部 링크 [ 編輯 ]