디시인사이드 갤러리

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

갤러리 본문 영역

Ada 프로그래밍: 9. 계약에 의한 설계(DbC)

나르시갤로그로 이동합니다. 2025.08.11 00:26:50
조회 69 추천 0 댓글 0

9. 계약에 의한 설계(DbC)

Ada 2012에서 표준화된 계약에 의한 설계(Design by Contract, DbC)는 프로그래머가 형식적이고 검증 가능한 명세를 소스 코드에 직접 내장할 수 있게 하여 Ada의 신뢰성 기능을 향상시킵니다. 이러한 계약은 실행 가능한 문서 역할을 하며, 고수준 요구사항을 구현에 연결합니다. 컴파일러 스위치(-gnata)로 활성화하면, 이러한 계약은 실행 시간에 검사되어 위반 시 Assert_Failure 예외를 발생시킵니다.

Ada에서 DbC의 핵심 구성 요소는 다음과 같습니다:

  • 전제조건(Preconditions): 서브프로그램이 호출되기 전에 참이어야 하는 조건입니다. 이는 호출자 측의 의무입니다. with pre =>...로 지정됩니다.

    function square_root (x : Float) return Float with pre => x >= 0.0;
    
  • 후조건(Postconditions): 서브프로그램이 성공적으로 완료되었을 때 참이 될 것을 보장하는 조건입니다. 이는 서브프로그램 구현 측의 의무입니다. with post =>...로 지정됩니다. 후조건은 'old 속성으로 매개변수의 초기 값을, 'result 속성으로 함수의 결과를 참조할 수 있습니다.

    procedure increment (value : in out Integer) with post => value = value'old + 1;
    
  • 형식 불변식 및 술어(Type Invariants and Predicates): 주어진 형식의 모든 객체에 대해 항상 참이어야 하는 조건입니다. 술어(with static_predicate => ...)는 해당 형식의 값이 생성되거나 수정될 때마다 검사되는 속성입니다. 불변식(with type_invariant => ...)은 개인 형식의 속성으로, 공개 연산의 경계에서 검사됩니다.

계약은 유용한 도구입니다. 컴파일된 코드와 일치하는 문서를 제공합니다. 테스트와 디버깅을 위한 정확한 기반 역할을 하며, 형식적 검증 도구에 대한 중요한 입력이 됩니다.

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 존재만으로도 웃음주는 최고의 '웃수저' 스타는? 운영자 25/08/25 - -
AD 가전디지털, 신학기 페스타! 운영자 25/08/29 - -
2883545 rnd예산은 ai개발자나 그런 사람들이먹는거지 프갤러(106.102) 08.22 69 0
2883544 ada 사용처는 임베디드 말곤 없어보이는데 프갤러(218.154) 08.22 77 0
2883542 컴터공학은 공대도아님 - R&D 예산 늘리는것도 못먹음 [2] 프갤러(183.101) 08.22 89 2
2883541 오늘은 외주떄문에 바쁘다 [2] ㅆㅇㅆ(124.216) 08.22 95 0
2883540 R&D 보다 인문영역의 발달이 중요해 보인다- 프갤러(121.172) 08.22 63 0
2883539 고졸 이직 가능할까 프갤러(175.210) 08.22 181 0
2883538 nhn vs 쏘카 개발자 입장에서 [1] 프갤러(58.228) 08.22 125 0
2883537 golang Gin 마스터할까~ [4] 프갤러(106.101) 08.22 92 0
2883536 35살 직딩인데.. 이정도면 내 무기는 확실히 있는거지? [2] ㅇㅇ(118.235) 08.22 126 0
2883534 [SAP Korea] 2025 SAP CODE 아카데미 1기 모집 (~8 프갤러(14.32) 08.22 432 0
2883532 태어났는데 북쪽도 아니고 남쪽에서 태어남?? 씹 ㅅㅌㅊ??ㅋㅋㅋ 뒷통수한방(1.213) 08.22 66 0
2883531 오늘의 발명 실마리: 모니터 가상 분할 발명도둑잡기갤로그로 이동합니다. 08.22 66 0
2883529 대통령실 하정우미만은 잡 ㅇㅇ 뒷통수한방(1.213) 08.22 85 0
2883528 ㅇㅅㅇ ♥냥덩Art♥갤로그로 이동합니다. 08.22 71 0
2883526 고수님들 부탁이있어요 프갤러(112.145) 08.22 63 0
2883525 자기가 IME(입력기) 같은 걸 개발하면 Ada 언어를 나르시갤로그로 이동합니다. 08.22 61 0
2883524 [두산로보틱스] 로키부트캠프 AI·로봇 엔지니어 양성과정 6기 모집 (~ [1] 프갤러(14.32) 08.22 216 0
2883523 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥냥덩Art♥갤로그로 이동합니다. 08.22 62 0
2883522 X86의 인탤이 arm으로 ? ♥냥덩Art♥갤로그로 이동합니다. 08.22 77 0
2883521 Ada로 작성하면 코드수가 늘어납니다. 나르시갤로그로 이동합니다. 08.22 65 0
2883520 35살 이 스펙이면 어디가도 먹고사나? 무역경력은 5년차임 ㅇㅇ(58.229) 08.22 86 0
2883519 역대최고 R&d 예산인데 ??ㅋㅋㅋ내년에 또 늘어나는데?? [1] 뒷통수한방(1.213) 08.22 90 0
2883518 it 연봉작다는데 왜 자꾸 R&D예산 몇년째 늘어나는거임?? [4] 뒷통수한방(1.213) 08.22 113 0
2883517 Ada의 신뢰성과 안전성 관련된 글에 대한 생각- [2] 프갤러(121.172) 08.22 95 2
2883516 cefsharp으로 키오스크앱 만든적은 있음 [2] ㅇ.ㅇ(59.151) 08.22 92 0
2883515 러스트 왜 절름발이 언어인가? [5] 나르시갤로그로 이동합니다. 08.22 116 0
2883514 이민이 선택사항이라고 착각하는 애들 있다는게 충격 ♥냥덩Art♥갤로그로 이동합니다. 08.22 75 0
2883513 백자 달항아리 마주한 '케데헌' 감독 "아이디어가 떠오르네요" 발명도둑잡기갤로그로 이동합니다. 08.22 75 0
2883510 [애니뉴스] 1호 잡지 - 귀인환등초 오후우의 심층분석! 프갤러(121.172) 08.22 59 0
2883508 책 한권 읽는다고 인생이 달라지지 않구요. [1] ㅇㅇ(121.162) 08.22 78 0
2883506 Ada의 신뢰성과 안전성 나르시갤로그로 이동합니다. 08.22 91 0
2883505 세계에서 내로라 하는 인재들은 러스트가 아닌 c/c++ 나르시갤로그로 이동합니다. 08.22 61 0
2883504 어디가실것같나요?? [1] ㅇㅇ(39.7) 08.22 86 0
2883503 금요일은 자체 휴가냐? [1] ㅇㅇ(211.234) 08.22 76 0
2883502 윈폼이나 WPF에 [3] 루도그담당(211.184) 08.22 94 0
2883501 만 3년차 백엔드 조언 구함 [3] 프갤러(218.239) 08.22 118 0
2883500 그녹 개씨발련아 찢어죽이고싶네 씨발련 [1] ㅇㅇ(59.17) 08.22 98 0
2883496 외국년 소주먹이고 반응 ㅇㅇ(58.229) 08.22 85 0
2883494 이상하게.. ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 08.22 48 0
2883491 제조업 종특인가? 씨샾 닷넷 많이쓰네 [2] 프갤러(119.195) 08.22 120 0
2883479 어느 공원 ㅇㅅㅇ [2] 헤르 미온느갤로그로 이동합니다. 08.22 69 0
2883477 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 08.22 59 0
2883476 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 08.22 86 0
2883475 세계에서 내노라 하는 인재들은 러스트 잘 쓰고 있습니다. 프갤러(27.166) 08.22 57 0
2883474 제미나이 프롬프트 숨기는 크롬 확장 프로그램 만들었다 ㅇㅇ(112.140) 08.22 72 0
2883473 인지과학조져라 손발이시립디다갤로그로 이동합니다. 08.22 67 0
2883456 뉴프로에서 카드뽑기 포인트 연속 2번 날아가서 빡쳐서 ㅆㅇㅆ(124.216) 08.22 78 0
2883453 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥냥덩Art♥갤로그로 이동합니다. 08.22 65 0
2883428 모든카드 수집완료 [4] 헬마스터갤로그로 이동합니다. 08.22 116 0
2883423 오토핫키) FPS공방용 짱깨어번역TTS 만들어봤음 [2] ㅇㅇ(59.17) 08.22 105 2
뉴스 싸이, 수면제 대리 수령 논란... 소속사 "명백한 과오" 디시트렌드 08.29
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2