디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

1.1 Ada의 역사

나르시갤로그로 이동합니다. 2025.07.31 01:17:47
조회 95 추천 0 댓글 0

Ada 프로그래밍 언어의 역사는 특정 목적, 즉 대규모의 장기 실행, 고신뢰성 소프트웨어 시스템 개발을 위한 표준화된 도구의 필요성에서 시작되었습니다. 그 기원은 1970년대 중반 미 국방부(United States Department of Defense, DoD)의 소프트웨어 위기 인식으로 거슬러 올라갑니다.

1.1.1 문제의 대두: 국방부의 소프트웨어 위기

1970년대에 미 국방부는 임베디드 컴퓨팅 시스템에 사용되는 프로그래밍 언어의 수가 폭발적으로 증가하는 문제에 직면했습니다. 국방부 시스템 전반에 걸쳐 수백 개의 서로 다른 언어와 그 방언들이 사용되고 있었으며, 이는 심각한 비효율성을 초래했습니다. 각 프로젝트마다 새로운 언어, 컴파일러, 개발 도구 및 교육이 필요했으며, 이는 소프트웨어 개발 및 유지보수 비용을 천문학적으로 증가시켰습니다. 또한, 코드의 재사용성과 이식성이 극도로 낮았고, 시스템의 신뢰성을 검증하고 보장하는 것이 거의 불가능했습니다.

이러한 문제를 해결하기 위해, 국방부는 1975년에 고차 언어 실무 그룹(High Order Language Working Group, HOLWG)을 설립했습니다. 이 그룹의 임무는 국방부의 요구사항을 충족할 수 있는 단일하고, 표준화된, 범용 프로그래밍 언어를 정의하거나 선정하는 것이었습니다.

1.1.2 요구사항 정의와 언어 설계 경쟁

HOLWG는 먼저 현존하는 언어들(예: Pascal, PL/I, Algol 68)이 국방부의 요구사항을 충족하는지 평가했습니다. 평가 결과, 어떤 언어도 실시간 처리, 예외 처리, 병행성, 대규모 시스템 모듈화와 같은 핵심 요구사항을 완전히 만족시키지 못한다는 결론에 도달했습니다. 따라서 새로운 언어를 개발하기로 결정했습니다.

이후 HOLWG는 일련의 요구사항 문서를 작성했으며, 이는 최종적으로 Steelman 요구사항 명세서로 집대성되었습니다. 이 명세서는 새로운 언어가 갖추어야 할 기술적 특성을 매우 상세하게 정의했습니다. 주요 요구사항은 다음과 같았습니다.

  • 강력한 타입 시스템 (strong typing): 컴파일 시점에 오류를 최대한 발견하여 런타임 오류를 줄입니다.
  • 모듈성 (modularity): 패키지(package) 개념을 통해 대규모 소프트웨어를 논리적으로 분할하고 관리할 수 있도록 지원합니다.
  • 예외 처리 (exception handling): 런타임 오류 발생 시 시스템이 안정적으로 복구하거나 종료될 수 있는 메커니즘을 제공합니다.
  • 병행성 (concurrency): 여러 작업을 동시에 처리할 수 있는 기능을 언어 자체에 내장합니다. (태스크, rendezvous 개념)
  • 데이터 추상화 (data abstraction): 사용자가 데이터의 내부 구현을 알 필요 없이 인터페이스만을 통해 데이터를 조작할 수 있도록 합니다.
  • 가독성 (readability): 코드 작성의 용이성보다 코드 판독의 용이성에 중점을 두어 장기적인 유지보수를 용이하게 합니다.

이러한 요구사항을 바탕으로 국제적인 언어 설계 경쟁이 시작되었습니다. 여러 팀이 경쟁에 참여했으며, 제출된 설계안들은 코드명(Red, Green, Blue, Yellow)으로 불렸습니다. 치열한 평가 과정을 거쳐 1979년, 프랑스 CII Honeywell Bull사의 Jean Ichbiah가 이끄는 팀이 제안한 Green 설계안이 최종적으로 선정되었습니다.

1.1.3 Ada의 탄생과 표준화

선정된 언어는 19세기 초, 세계 최초의 프로그래머로 인정받는 Augusta Ada Byron, Countess of Lovelace의 이름을 기려 Ada로 명명되었습니다. Ada Lovelace는 Charles Babbage의 해석 기관(analytical engine)을 위한 알고리즘을 작성한 인물로, 그녀의 선구적인 업적은 Ada 언어가 지향하는 정밀성과 신뢰성의 가치를 상징합니다.

Ada 언어의 첫 번째 공식 표준은 1983년에 미국 국립 표준 협회(ANSI)에 의해 승인되었으며(ANSI/MIL-STD-1815A), 이후 국제 표준화 기구(ISO) 표준으로도 채택되었습니다. 이 버전을 Ada 83이라고 부릅니다. Ada 83은 당시로서는 매우 진보적인 개념들을 포함하고 있었으며, 특히 대규모, 고신뢰성 시스템 설계에 강력한 기반을 제공했습니다.

1.1.4 진화하는 언어: Ada 95, Ada 2005, Ada 2012, Ada 2022

소프트웨어 공학 기술이 발전하고 프로그래밍 패러다임이 변화함에 따라 Ada 언어 역시 지속적으로 개정되었습니다.

  • Ada 95: 첫 번째 주요 개정판인 Ada 95는 ISO에 의해 표준화된 최초의 객체 지향 프로그래밍 언어였습니다. 이 버전에서는 상속, 다형성 등 완전한 객체 지향 기능을 지원하기 위한 태그드 타입(tagged type) 개념이 도입되었습니다. 또한, 보호 객체(protected object)를 도입하여 병행성 처리 모델을 개선하고 데이터 경쟁(data race)을 방지하는 더 안전하고 효율적인 방법을 제공했습니다. 계층적 라이브러리(hierarchical libraries)와 표준 라이브러리의 확장도 이루어졌습니다.

  • Ada 2005: 이 버전은 Interfaces라는 개념을 도입하여 Java나 C#과 유사한 다중 상속의 유연성을 제공했습니다. 또한, 표준 라이브러리가 더욱 확장되었고, 실시간 시스템 지원 기능이 향상되었습니다. pragma와 같은 언어의 세부적인 부분들도 개선되어 프로그래머의 편의성과 코드의 명확성을 높였습니다.

  • Ada 2012: 계약 기반 프로그래밍(design by contract)을 언어 차원에서 본격적으로 지원하기 시작한 버전입니다. 서브프로그램의 사전 조건(precondition), 사후 조건(postcondition), 타입 불변식(type invariant) 등을 명시할 수 있는 구문이 추가되었습니다. 이를 통해 개발자는 프로그램의 정확성을 더욱 엄격하게 명시하고 검증할 수 있게 되었습니다. 또한 멀티코어 프로세서를 더 잘 활용할 수 있도록 병행성 관련 기능들이 개선되었습니다.

  • Ada 2022: 가장 최신 표준인 Ada 2022는 이전 버전의 개념들을 더욱 발전시키고 새로운 기능을 추가했습니다. delta 애그리게이트, 더 정교해진 계약 기반 프로그래밍 지원, 병렬 프로그래밍을 위한 새로운 속성 및 parallel 키워드 등이 포함되었습니다. 이러한 개선 사항들은 Ada를 현대적인 하드웨어 아키텍처와 개발 방법론에 더욱 적합한 언어로 만들었습니다.

이처럼 Ada는 단순한 프로그래밍 언어를 넘어, 소프트웨어 공학의 원칙을 체계적으로 구현한 도구로서 설계되었습니다. 그 역사는 신뢰성과 안전성이 최우선으로 요구되는 시스템을 구축하기 위한 끊임없는 노력의 과정이며, 오늘날에도 항공우주, 국방, 철도, 의료 등 실패가 허용되지 않는 핵심 시스템에서 그 가치를 증명하고 있습니다.

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 의외로 연애 못할 것 같은 연애 하수 스타는? 운영자 25/08/04 - -
AD 가전디지털, 휴대폰 액세서리 SALE 운영자 25/08/08 - -
2877588 거지세계에서 ㅆㅇㅆ가 커보이는건 당연하지 ㅋㅋ [2] 프갤러(121.139) 08.03 83 4
2877587 일단 현재 프갤에서 플밍 제일 고수는 ㅆㅇㅆ인 것 같음 [7] 아스카영원히사랑해갤로그로 이동합니다. 08.03 129 0
2877586 좀 코딩을 할 때 필요 해석문 좀 달아놔라 [6] 짇알옆차기(222.113) 08.03 98 0
2877584 인공지능에 대한 환상 프갤러(121.148) 08.03 60 0
2877580 프로그래밍 언어 만들어본 사람 있음? [6] ㅇㅇ갤로그로 이동합니다. 08.03 85 0
2877579 아이큐 같은게 사람 포텐셜을 전부 파악못하고 아이큐는 변함 [4] ㅆㅇㅆ(124.216) 08.03 87 0
2877577 난 iq검사떄 프갤러(121.139) 08.03 56 0
2877576 본인 아이큐 검사 98 나왔었음 [16] 루도그담당(58.239) 08.03 112 0
2877575 내 정리한 내용들 보는데 생각보다 열심히 공부했네 [3] ㅆㅇㅆ(124.216) 08.03 56 0
2877574 너네는 근데 공부한 내용 어떻게 정리해두냐? [4] ㅆㅇㅆ(124.216) 08.03 91 0
2877573 실베에 IQ 276 보니까 [3] 루도그담당(58.239) 08.03 99 0
2877568 내가 정리한 알고리즘 개념 그래프는 이러함 [2] ㅆㅇㅆ(124.216) 08.03 85 0
2877567 내 공부법 어떤지 소개해줌. [4] ㅆㅇㅆ(124.216) 08.03 92 0
2877566 걍 라이브러리 쓸까 [9] 루도그담당(58.239) 08.03 112 0
2877565 또 장애인 한마리 계속 시비걸면서왔군 [2] ㅆㅇㅆ찡갤로그로 이동합니다. 08.03 71 0
2877564 리트코드 관련해서 어떤 데이터가 어떻게 연관있는지 정리한 [2] ㅆㅇㅆ(124.216) 08.03 71 0
2877563 하루에 한줄 감사의 코딩 [2] 공기역학갤로그로 이동합니다. 08.03 60 0
2877562 리트코드는 문제어떤 순서로 푸냐 [3] 밀우갤로그로 이동합니다. 08.03 63 0
2877559 거지말단새기가 아부리터는 나만 불편하나 프갤러(121.139) 08.03 59 4
2877558 요즘은 런타임에 동적 코드 소스 제네레이터 쓰라고 함 [3] ㅆㅇㅆ(124.216) 08.03 77 0
2877555 아 어렵다 [2] 루도그담당(58.239) 08.03 56 0
2877554 나 요즘은 지피티 코드를 내 멘토로 하기로 함 ㅆㅇㅆ(124.216) 08.03 64 0
2877553 확실히 정신병자 새끼들은 상종하면 안됨 프갤러(45.83) 08.03 76 4
2877551 코드 계속 따라치다보면 뭔가 그래 항상 [2] ㅆㅇㅆ(124.216) 08.03 74 0
2877550 진짜 파이 인스톨러 너무 좆같아 그냥 ㅆㅇㅆ(124.216) 08.03 58 0
2877549 날이 너무 무덥다 진짜 [2] ㅆㅇㅆ(124.216) 08.03 59 0
2877548 direct call 구현하는데 좆빡세네 루도그담당(58.239) 08.03 61 0
2877547 Dive into SOLANA [1] 어린이노무현갤로그로 이동합니다. 08.03 70 0
2877544 청소하기도싫고, 더워서 나가기도 싫다. 프갤러(121.139) 08.03 53 0
2877543 ㅆㅇㅆ 보면 [2] 프갤러(121.139) 08.03 95 6
2877542 gpt 수고했다 [2] 프갤러(113.59) 08.03 82 0
2877541 [대한민국] 운동권 교수한테 한 소리 했다- 프갤러(121.172) 08.03 43 0
2877536 아침에 오줌 매려운데 그 텐트가 안풀려서 오줌 못싸는게 정상임?? ㅇㅇ(223.39) 08.03 56 0
2877532 최고라는 건 결국 새로운 사고방식인데 ㅆㅇㅆ(124.216) 08.03 57 0
2877531 AI 쓰면서 느끼는데 AI는 사람 고점을 늘려주진 않음 [2] ㅆㅇㅆ(124.216) 08.03 91 0
2877529 컴공만 좃된거 아니니깐 너무 열폭하진 마 [1] 프갤러(121.148) 08.03 125 0
2877524 구름. ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 08.03 40 0
2877523 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 08.03 46 0
2877522 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 08.03 46 0
2877521 전자정부프레임워크랑 그누보드보면 한국이 젤 낡아빠짐 ㅇㅇ(183.101) 08.03 47 0
2877517 일본 기술 문서만 봐도 낙후화되있는거 눈에보이는데 왜 가고 싶어하지.. [1] ㅆㅇㅆ(124.216) 08.03 80 0
2877514 글쓰는거 왜오류걸리징 ㅇㅇ(39.7) 08.03 42 0
2877505 gc 쓰는거 왤케 열받지 공기역학갤로그로 이동합니다. 08.03 68 0
2877499 avif는 왜캐 지원이 느린지 [2] 밀우갤로그로 이동합니다. 08.03 152 0
2877496 미국에서 ai 천재 2400억 주고 데려오네 프갤러(221.146) 08.03 121 0
2877494 여러 생각으로 머리가 아파서 [2] 아스카영원히사랑해갤로그로 이동합니다. 08.03 96 0
2877492 MCP 만드는법 모르는 호구 없제 프갤러(121.133) 08.03 73 0
2877489 ai 20%정도 부족한거 언제쯤 고쳐지려나 [1] 뉴진파갤로그로 이동합니다. 08.03 80 0
2877478 할까 ㅇㅅㅇ [4] 어린이노무현갤로그로 이동합니다. 08.02 101 0
2877475 이재명씨 리더십론 알찬것같구나 [4] 헬마스터갤로그로 이동합니다. 08.02 106 0
뉴스 [뚜벅이 맛총사] '예능 초보' 연우진, '2살 형' 권율과 같은 세대라서 불만? 불쑥 튀어나온 속내에 현장 초토화! 디시트렌드 08.09
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2