디시인사이드 갤러리

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

갤러리 본문 영역

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

나르시갤로그로 이동합니다. 2025.08.11 00:26:50
조회 101 추천 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
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 영포티룩도 멋지게 소화할 것 같은 40대 스타는? 운영자 25/10/27 - -
AD 저녁 뭐먹지? 오늘의 메뉴 추천! 운영자 25/10/31 - -
공지 프로그래밍 갤러리 이용 안내 [97] 운영자 20.09.28 48373 65
2899729 최미니 사퇴해. 넥도리아2025(14.35) 19:16 5 0
2899717 [현장에서] 트럼프 1박 2일에 부쳐: 언제까지 미국을 섬겨야 하나 발명도둑잡기(118.216) 18:37 9 0
2899716 내가 관심있는 여성들 발명도둑잡기(118.216) 18:23 17 0
2899715 <착한 여자 부세미> 한대서 생각나는 예전 글 발명도둑잡기(118.216) 18:21 11 0
2899714 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥KiTTY냥덩♥갤로그로 이동합니다. 18:19 16 0
2899713 해가 넘 짤바져서 ♥KiTTY냥덩♥갤로그로 이동합니다. 18:14 13 0
2899712 옛날 자본금 몇천으로 인력업체세우는게 [15] 배구공(119.202) 18:04 49 0
2899711 유명 女스타, 해외 촬영 중 사망 발명도둑잡기(118.216) 18:02 14 0
2899709 트럼프 가고 “극우 청천벽력”…윤석열의 윤 자도 안 꺼내고 떠났다 발명도둑잡기(118.216) 17:53 17 0
2899708 나는조현병이야 나는내향적이야 손발이시립디다갤로그로 이동합니다. 17:47 14 0
2899707 si가면 거 자바나 씨샵한다던데 [2] 배구공(119.202) 17:45 31 0
2899706 json상하차 및 땔감들을 위한 노래 [4] 프갤러(147.161) 17:39 46 0
2899705 천재 [2] 배구공(119.202) 17:37 33 0
2899704 뭐지 예전에 자바 공부 좀 했다가 수년간 안써서 [3] 프갤러(125.131) 17:12 44 0
2899703 ㅋㅅㅋ ♥KiTTY냥덩♥갤로그로 이동합니다. 17:05 33 0
2899702 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥KiTTY냥덩♥갤로그로 이동합니다. 16:52 22 0
2899701 너가 재능이니 천재 인 척이니 이거 언급하는 이유가 뭐겠냐 [1] ㅆㅇㅆ(124.216) 16:28 41 0
2899700 천재같은거에 집착하지마. 천재 아니라도 러스트 할 수 있어 [2] 프갤러(218.154) 16:26 31 0
2899699 냥덩아 나는 내가 천재라 한적 없는데 너가 자꾸 천재 재능 언급하는게 ㅆㅇㅆ(124.216) 16:22 32 0
2899698 ㅆㅇㅆ는 걍 천재인척하는 범재임 ㅇㅇ(118.235) 16:10 39 1
2899697 리액트 공부 2일차 [2] 꿀통찾는꿀벌갤로그로 이동합니다. 16:08 36 0
2899696 나랑 결혼한지 1년차인 와이프 사진 ㅇㅇ1갤로그로 이동합니다. 15:44 48 0
2899695 누구야? 넥도리아(220.74) 15:23 27 0
2899694 옛날에 디버깅은 일단 디버거 켜서 ㅆㅇㅆ찡갤로그로 이동합니다. 15:20 31 0
2899693 트레이딩뷰는 WebGL이랑 캔버스 프로젝트인데 [7] ㅆㅇㅆ(124.216) 15:05 41 0
2899692 왜 주식 프로그램 말하는 애들은 하나같이 차트를 웹으로 하고싶어할까 [1] ㅆㅇㅆ(124.216) 15:04 37 0
2899691 아무리 생각해도ai는 없는게 낫다 [9] 프갤러(211.234) 14:59 44 0
2899690 코로나 코딩붐때 국비 수료하고 개발자 됐는데 후회한다 [1] ㅇㅇ(106.101) 14:51 33 0
2899689 배뷰르고 졸리댱.. ♥KiTTY냥덩♥갤로그로 이동합니다. 14:22 34 0
2899688 배 아파서 항외과 넥도리아(223.38) 14:17 19 0
2899687 [애니뉴스] 소설 사이트 개발 [2] 프갤러(121.172) 13:59 37 0
2899686 냥덩이가 나 따라다니는거 다중이로 하는거 그냥 무시해라 ㅆㅇㅆ(124.216) 13:57 30 2
2899685 외노자 학대를 멈추어 주세오.. ㅠ ㅅ ㅠ .. ♥KiTTY냥덩♥갤로그로 이동합니다. 13:36 28 0
2899684 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥KiTTY냥덩♥갤로그로 이동합니다. 13:30 34 0
2899683 글카 가격 정상화 되냐? [5] 루도그담당(58.239) 13:17 69 0
2899682 일이 고정이 아니고 취소됐다 안됐다 하니 쩝. 오늘은 나가리네 [2] ㅆㅇㅆ(124.216) 13:12 42 0
2899681 냥덩이는 ㅆㅇㅆ한테 열등감 느끼니 저러는거지 [1] ㅇㅇ(112.163) 12:43 43 0
2899680 국내 최원종 앙성 갤러리 ㅋㅋ ㅇㅇ(118.235) 12:42 29 0
2899679 냥덩이는 왜 다중이로 ㅆㅇㅆ 괴롭히냐 [2] ㅇㅇ(112.163) 12:41 42 0
2899678 이갤은 ㅆㅇㅆ같은 빡통 좆문가가 왜케 많냐 [4] ㅇㅇ(118.235) 12:21 63 2
2899677 [대한민국] 윤석열 대통령 재판 상황 - 곽종근 프갤러(121.172) 11:43 18 0
2899676 이봐봐 러스트 안쓰니까 쓸데없는걸로 싸움질 하다 갤 망했네 프갤러(218.154) 11:34 25 0
2899675 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ [3] ♥KiTTY냥덩♥갤로그로 이동합니다. 11:31 58 0
2899674 답을 찾았다. 저능아들을 계몽시킬 방법을 [1] 프갤러(218.154) 11:22 42 0
2899673 진짜 개좇센은 전세계 재벌들 좇판 좇집실험장이누 타이밍뒷.통수한방(1.213) 11:02 16 0
2899671 ㅆㅇㅆ쟤는 10년 20년 30년뒤에도 저지랄할까봐 [3] ㅇㅇ(118.235) 10:21 76 2
2899670 무릎 아파. . 넥도리아(223.38) 09:38 17 0
2899669 월말 백업중..ㅇㅅㅇ [3] 헤르 미온느갤로그로 이동합니다. 09:15 44 1
2899668 시들어가는 국화 ㅇㅅㅇ [2] 헤르 미온느갤로그로 이동합니다. 08:21 37 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2