디시인사이드 갤러리

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

갤러리 본문 영역

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

나르시갤로그로 이동합니다. 2025.08.11 00:26:50
조회 118 추천 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/11/17 - -
AD 겨울가전 SALE! 쿨한 겨울 HOT세일 운영자 25/11/12 - -
2882317 나님 왤케 특별하실깡? ♥냥덩이♥갤로그로 이동합니다. 08.18 211 0
2882316 나님 끙야즁❤+ ♥냥덩이♥갤로그로 이동합니다. 08.18 178 0
2882315 토요코키즈 ♥냥덩이♥갤로그로 이동합니다. 08.18 197 0
2882311 일본인을 한국의 기준으로 판단이 힘든 이유 프로외노자갤로그로 이동합니다. 08.18 210 1
2882310 동일노동 동일임금이 잘 되려면 노동강도 조사가 잘 되야 발명도둑잡기갤로그로 이동합니다. 08.18 195 0
2882309 건설업종 안전관리자가 직업에 회의감 발명도둑잡기갤로그로 이동합니다. 08.18 187 0
2882308 2030 줄고 4050 고인물천국된 판교 - 뉴스 ㅇㅇ(183.101) 08.18 208 0
2882307 이번달은 안정권이다 씨발ㅋㅋㅋ 저번달 통수만 안당했어도 ㅆㅇㅆ(124.216) 08.18 178 0
2882306 쿠팡 개발자는 노동자 죽이는 앱 개발 하다가 [6] 발명도둑잡기갤로그로 이동합니다. 08.18 232 0
2882305 오늘도 외주하나 깔쌈하게 끝냈다 [1] ㅆㅇㅆ찡갤로그로 이동합니다. 08.18 180 0
2882304 쿠팡 노조 가입 희망자 발명도둑잡기갤로그로 이동합니다. 08.18 161 0
2882303 음기 충전 발명도둑잡기갤로그로 이동합니다. 08.18 150 0
2882302 AI 는 패턴매칭 맞지만, 알려지지않은 패턴도 거의없잖아? 피치(183.101) 08.18 179 0
2882301 ㄹㅇ 아빠회사가 최고다 [1] 프갤러(1.226) 08.18 200 0
2882299 이불 안에서 태블릿 하는 보니 발명도둑잡기갤로그로 이동합니다. 08.18 138 0
2882297 영화 <숟가락 살인자> 있대서 생각나는 것 발명도둑잡기갤로그로 이동합니다. 08.18 259 0
2882295 참 살기좋은 아름다운 나라여 ㅋㅋ 뒷통수한방(1.213) 08.18 110 0
2882294 <토이 스토리4> 예고편 보고 생각나는 것 발명도둑잡기갤로그로 이동합니다. 08.18 253 0
2882292 C로 이것저것 만들다보면 어디라도 취직은 할까? [3] 프갤러(59.24) 08.18 258 0
2882291 인공지능 시대 없어진 직업 드라마 발명도둑잡기갤로그로 이동합니다. 08.18 177 0
2882289 찬란하진 않지만 순방은 가능하자나? 프갤러(61.79) 08.18 147 0
2882287 냥덩이란 캐릭터는 참 편리하단 말이지.. 키킼 ♥냥덩이♥갤로그로 이동합니다. 08.17 158 0
2882286 오늘의 작명 실마리: 밴드명 숫가락, 멤버 금은동흙 발명도둑잡기갤로그로 이동합니다. 08.17 134 0
2882285 물리적으로 기억조작 가능 ♥냥덩이♥갤로그로 이동합니다. 08.17 193 0
2882284 오늘의.작명 실마리: 예명을 불우이웃으로 [2] 발명도둑잡기갤로그로 이동합니다. 08.17 138 0
2882281 명주실 뽑는 유상아 발명도둑잡기갤로그로 이동합니다. 08.17 121 0
2882278 음의 시간이 국부적으로 가능하면 나님만 제외시키면 ♥냥덩이♥갤로그로 이동합니다. 08.17 160 0
2882276 나님..우주의비밀을 탐구 [3] ♥냥덩이♥갤로그로 이동합니다. 08.17 220 0
2882275 '컴백 D-8' 아이브, '아이브 시크릿' 콘셉트 포토 공개 발명도둑잡기갤로그로 이동합니다. 08.17 136 0
2882274 누가 나님 냥덩이 만진거야? ♥냥덩이♥갤로그로 이동합니다. 08.17 209 0
2882273 미 인권보고서, MBC ‘파란색 1’ 날씨예보 징계 지적 발명도둑잡기갤로그로 이동합니다. 08.17 240 0
2882272 1찍 고대 유물 발명도둑잡기갤로그로 이동합니다. 08.17 161 0
2882271 좃찐따새끼 ㅋㅅㅋ ♥냥덩이♥갤로그로 이동합니다. 08.17 176 0
2882270 홍대광-홍대에 가면 발명도둑잡기갤로그로 이동합니다. 08.17 118 0
2882269 잔나비-주저하는 연인들을 위해 발명도둑잡기갤로그로 이동합니다. 08.17 141 1
2882268 냥덩이 특징 [1] 발명도둑잡기갤로그로 이동합니다. 08.17 146 0
2882267 모모링~❤+ ♥냥덩이♥갤로그로 이동합니다. 08.17 196 0
2882265 너의 IQ는 지평선만큼 높다 발명도둑잡기갤로그로 이동합니다. 08.17 105 0
2882264 여기에 게시글 제목 ㅇㅇ(175.198) 08.17 120 0
2882263 평소 욕을 자주 하는 사람 심리와 원인 발명도둑잡기갤로그로 이동합니다. 08.17 191 0
2882262 조동일의 4갈래설 발명도둑잡기갤로그로 이동합니다. 08.17 137 0
2882261 냥덩이 한국어 실력 ㅁㅌㅊ? ♥냥덩이♥갤로그로 이동합니다. 08.17 239 0
2882260 도로도로 도로롱!!!!! ♥냥덩이♥갤로그로 이동합니다. 08.17 196 0
2882259 소원)블라 it라운지에서 비공개안하고 글쓸수있는 회사가기 [2] 밀우갤로그로 이동합니다. 08.17 182 0
2882258 기괴 ㅌㅊ ♥냥덩이♥갤로그로 이동합니다. 08.17 145 0
2882257 ai도 모르면 모르겠다고 해야할텐데 ㅇㅇ(121.159) 08.17 144 0
2882256 ai가 진실보다는 그럴듯하게 거짓말하는게 목적 [1] ㅇㅇ(121.159) 08.17 161 0
2882255 정신병있는 프갤러들 보니 [1] 밀우갤로그로 이동합니다. 08.17 186 0
2882254 냥덩이두 이제 늙고 병들엇나바.. [1] ♥냥덩이♥갤로그로 이동합니다. 08.17 210 0
2882253 세 ai의 답변이 모두 다르구나 [3] 헬마스터갤로그로 이동합니다. 08.17 218 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2