디시인사이드 갤러리

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

갤러리 본문 영역

1.1 Ada의 역사

나르시갤로그로 이동합니다. 2025.07.31 01:17:47
조회 81 추천 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 - -
공지 프로그래밍 갤러리 이용 안내 [92] 운영자 20.09.28 46059 65
2878398 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥꽃보다냥덩♥갤로그로 이동합니다. 14:05 1 0
2878397 저어의 아비새끼는 굉장한 사람입니다. 프갤러(220.84) 14:04 9 0
2878396 피자먹을떼 반반후라이드가 낳냐 순살뼈양념이 낳냐 ㅇㅇ갤로그로 이동합니다. 14:00 3 0
2878395 한강 군데군데 시커먼건 녹조 낀거냐? 프갤러(218.154) 13:49 8 0
2878394 3시간 자고 출근하니까 개힘드네 [2] 프갤러(218.154) 13:46 15 0
2878393 제가 만든거 피드백도 해주시나여 [10] labwons갤로그로 이동합니다. 13:42 27 0
2878392 야 씹도그 담당아 바쁘냐 안바쁘면 내 코드 라이브러리 좀 첨삭해봐라 ㅆㅇㅆ(124.216) 13:38 10 0
2878391 프갤 레전드다 진짜 [1] 프갤러(122.199) 13:14 29 0
2878390 챗지피티를 쓰는게 문제가 아니라 좋은 코드를 알아보느냐 못알아보느냐가 ㅆㅇㅆ(124.216) 13:03 26 0
2878389 ??: 챗지피티 썼으니까 고로시 할게요 [2] 프갤러(61.106) 12:49 34 0
2878388 담번에 Ada로 이벤트 루프 구성하는거 보여드리겠음 ㅋㅋ 나르시갤로그로 이동합니다. 12:47 16 0
2878387 눈이 이상해.. ♥꽃보다냥덩♥갤로그로 이동합니다. 12:44 20 0
2878386 아니 그 좋은 언어들을 놔두고 러스트 왜 씀?? 나르시갤로그로 이동합니다. 12:41 21 0
2878385 The fin 넥도리아(119.195) 12:40 20 0
2878384 러빨러들한테 속아서 인생 낭비하는 일 없기 바래요 나르시갤로그로 이동합니다. 12:37 15 0
2878383 망한 후 재혼을 바라는 아비가 너무 가증스럽습니다. 프갤러(220.84) 12:36 20 0
2878382 숨좀 돌리고 싶지만 아직도 3~5년은 더 달려야함 프갤러(61.79) 12:33 18 0
2878381 좇같이 살기좋은나라누 ㅋㅋㅋ 뒷통수한방(1.213) 12:29 19 0
2878380 마무리 넥도리아(119.195) 12:28 16 0
2878379 이런 길을 걸을줄을 몰랐었지요. 프갤러(220.84) 12:27 14 0
2878378 풉킼.. 이게 진짜 냥덩의 힘이란 건가.. 키킼.. ♥꽃보다냥덩♥갤로그로 이동합니다. 12:26 19 0
2878377 Ada 활용처, 러빨러들한테 속지 맙시다 나르시갤로그로 이동합니다. 12:26 22 0
2878376 다음앱에서 맨날 뜨는 광고 발명도둑잡기갤로그로 이동합니다. 12:26 12 0
2878375 헤어드라이기 투입전 넥도리아(119.195) 12:23 14 0
2878374 해변에 사람들이 발명도둑잡기갤로그로 이동합니다. 12:21 14 0
2878373 c/c++은 전세계 기업들이 쓴다 [6] 나르시갤로그로 이동합니다. 12:21 40 0
2878372 수면부족을 금연으로 돌파!! 나님 정력 ㄱㅆㅅㅌㅊ !! ♥꽃보다냥덩♥갤로그로 이동합니다. 12:19 16 0
2878371 러스트 못쓰는게 꼴통이지 프갤러(218.154) 12:18 21 0
2878370 요새 러스트 누가 쓰냐 꼴통이 아닌 이상 ㅋㅋ 나르시갤로그로 이동합니다. 12:15 15 0
2878369 내폭, 압궤당해서 입맛도 없고 의욕도 없네요. 프갤러(220.84) 12:14 20 0
2878368 헉! 나님 금연하니 뭔가 갑자기 눈앞이 팍 트이는 느낌임!! ♥꽃보다냥덩♥갤로그로 이동합니다. 12:13 17 0
2878367 한국여자가 살기좋아진게아니고 재벌기득권새끼들살기좋아진거지 뒷통수한방(1.213) 12:09 21 0
2878366 공유기 다리 잘 붙이고 있다. KT 아저씨가 싫어할지도... 넥도리아(119.195) 12:08 20 0
2878365 프리랜서는 커리어 무덤임? [1] 프갤러(61.79) 11:59 34 1
2878364 요즘 한국 여자들 살기좋아졌찌 프갤러(121.139) 11:51 25 1
2878363 개념글 맨위에것만 조회수 싹쓸이 하는 이유가 뭐임? ㅇㅇ(59.24) 11:40 15 0
2878362 아 씨발 스택프레임 조절하는거 루도그담당(211.184) 11:40 26 0
2878361 아니 민생쿠폰 제대로 쓰지도 못할게 만들고 왜 뿌리는거냐?? 뒷통수한방(1.213) 11:33 22 0
2878360 아니 민생쿠폰받았는데 쓸곳이 없는게 말이되냐??? 뒷통수한방(1.213) 11:31 20 0
2878357 나님 결심 ! ♥꽃보다냥덩♥갤로그로 이동합니다. 11:13 26 0
2878355 Ada의 함수형 프로그래밍 패러다임 나르시갤로그로 이동합니다. 11:08 26 0
2878354 Ada 프로그래밍 소개 나르시갤로그로 이동합니다. 11:00 20 0
2878353 러스트쓰면 함수형 이지랄 따로 안해도 숨쉬듯이 함수형 쓰는셈이네 [1] 프갤러(218.154) 11:00 52 0
2878352 요즘 애들은 학교에서 우유 안주냐?? 학교벽이 왜 깨끗하냐 ㅇㅇ(223.39) 10:55 17 0
2878350 저어가 원래라면 교도소에 있거나 무덤에 있어야 할 쓰레긴데요. 프갤러(220.84) 10:47 21 0
2878348 자프링 -> MSA -> AI기반 서비스 개발 요흐름이네 [1] 위키세카이(211.234) 10:42 53 0
2878346 역시 경제는 대.재.명 ♥꽃보다냥덩♥갤로그로 이동합니다. 10:39 25 0
2878345 저어를 1번으로 데려가라고하여도 안데려갑니다. 프갤러(220.84) 10:38 19 0
2878344 매사 "흥", "지랄하네"로 일관한 병신새끼가 있었더랐죠. [1] 프갤러(220.84) 10:30 40 0
뉴스 손흥민 경기 ‘불륜캠’ 등장?…남녀 연예인 ‘백허그’ 딱 걸렸다 디시트렌드 08.04
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2