디시인사이드 갤러리

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

갤러리 본문 영역

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

나르시갤로그로 이동합니다. 2025.08.11 00:26:50
조회 87 추천 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/10/06 - -
AD 프로게이머가 될테야!! 운영자 25/10/01 - -
2880328 다들 화나있음 발명도둑잡기갤로그로 이동합니다. 08.11 98 0
2880323 루비가 ada하는 이유 프갤러(121.139) 08.11 123 1
2880322 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 08.11 82 0
2880304 it 프리랜서 도전해보고싶은데 어디서부터 시작함? [1] 프갤러(223.38) 08.11 156 0
2880300 여러 disaggregation 전략을 보는중이에여 PyTorch갤로그로 이동합니다. 08.11 100 0
2880298 요새 폭탄테러가 많은 이유? 프갤러(211.234) 08.11 98 0
2880294 깃헙 코파일럿 같은거 개위험한것 같은데 헬마스터갤로그로 이동합니다. 08.11 151 0
2880292 Ada 프로그래밍: 10. SPARK 소개 나르시갤로그로 이동합니다. 08.11 94 0
Ada 프로그래밍: 9. 계약에 의한 설계(DbC) 나르시갤로그로 이동합니다. 08.11 87 0
2880290 Ada 프로그래밍: 8. 동시성 및 실시간 프로그래밍 나르시갤로그로 이동합니다. 08.11 96 0
2880289 Ada 프로그래밍: 7. 외부 시스템과의 연동 나르시갤로그로 이동합니다. 08.11 87 0
2880286 Ada 프로그래밍: 4. 제어 흐름과 문장 나르시갤로그로 이동합니다. 08.11 130 0
2880281 오늘의 나는 분명 내일의 나보다 나은 사람이겠지 [1] 공기역학갤로그로 이동합니다. 08.11 104 0
2880280 마갤쪽 관련은 아예 정보 자체의 필터링이 안돼 그게 문제임 [2] ㅆㅇㅆ(124.216) 08.11 96 0
2880278 아니 원래 정갤은 오래되면 다 병신갤됨;; [4] 밀우갤로그로 이동합니다. 08.11 128 0
2880276 마갤은 너무 에코 챔버라 그냥 정갤이 편함 ㅆㅇㅆ(124.216) 08.11 101 0
2880274 이번에 외주 받은거 게이트웨이 패턴으로 코드 짜고 있는데 생각보다 ㅆㅇㅆ(124.216) 08.10 95 1
2880272 노드 js 이거 상당히 재밌네. [4] ㅆㅇㅆ(124.216) 08.10 139 0
2880268 자바는 씹좆입니다 [3] 루도그담당(58.239) 08.10 134 0
2880267 음기 충전 발명도둑잡기갤로그로 이동합니다. 08.10 77 0
2880266 냥덩이 유동 또 무슨 일있었다고 저지랄하네 [2] ㅆㅇㅆ(124.216) 08.10 117 0
2880265 나님 잔당⭐+ ♥냥덩이♥갤로그로 이동합니다. 08.10 107 0
2880256 “교제살인 피해자들, 한국 아니었다면 살았을 것 [3] 발명도둑잡기갤로그로 이동합니다. 08.10 112 0
2880254 저 악질 성희롱 스토커 [7] ♥냥덩이♥갤로그로 이동합니다. 08.10 161 0
2880251 calmeanarie.co.in 유명한 바이러스 악성코드 로 치료하자 [1] 도리스아넥도리아(220.74) 08.10 298 0
2880248 조경태, 김문수 향해 “문해력 떨어지시는지 모르겠다” [현장영상] 발명도둑잡기갤로그로 이동합니다. 08.10 83 0
2880244 나님.. 어른으로 가는 계단을 오르기 시작했달깡? [2] ♥냥덩이♥갤로그로 이동합니다. 08.10 105 0
2880243 귀염❤+ ♥냥덩이♥갤로그로 이동합니다. 08.10 83 0
2880241 회사 가까워지면 자동으로 폰배경을 바꿔주는 기능 발명도둑잡기갤로그로 이동합니다. 08.10 123 0
2880240 나님 생명의 가치에 대해 칼럼 하나 써야하눈데 [1] ♥냥덩이♥갤로그로 이동합니다. 08.10 97 0
2880239 윈도우 볼륨바 못끔? 프갤러(115.23) 08.10 92 0
2880238 일제가 숨통 끊으려 했던 우리말…이제 옥스퍼드 사전에도 실린다 발명도둑잡기갤로그로 이동합니다. 08.10 82 0
2880237 국가가 딸배에 세금폭탄투하중 [4] 개멍청한유라갤로그로 이동합니다. 08.10 121 0
2880236 청춘이란 뭘깡..? [1] ♥냥덩이♥갤로그로 이동합니다. 08.10 125 0
2880235 프로그래밍하면서 느끼는데 와 LLM 없이는 어떻게 다 했을까 [2] ㅆㅇㅆ(124.216) 08.10 149 0
2880234 아 개씨바 날벌레? 모기? [1] ♥냥덩이♥갤로그로 이동합니다. 08.10 95 0
2880231 입사했더니 딴소리…직장인 3명 중 1명 "채용사기 당했다" 발명도둑잡기갤로그로 이동합니다. 08.10 130 0
2880227 상생 배달? 자율에 맡겼더니 역주행 [1] 발명도둑잡기갤로그로 이동합니다. 08.10 116 0
2880224 스토킹 가해자 평균 44세…중년男, 관계성 범죄 가해자 다수 차지 발명도둑잡기갤로그로 이동합니다. 08.10 70 0
2880223 또 '혼자' 일하다, 또 '끼여' 죽었다 [1] 발명도둑잡기갤로그로 이동합니다. 08.10 116 0
2880222 애널의달성 5// [1] ♥냥덩이♥갤로그로 이동합니다. 08.10 99 0
2880221 핸드폰 사진만 10만 장... 기록에 미친 엄마, 닮아가는 딸 [1] 발명도둑잡기갤로그로 이동합니다. 08.10 97 0
2880219 요즘 귀에 문제 생긴 사람들 왤케 많냐? 백신부작용인가? ♥냥덩이♥갤로그로 이동합니다. 08.10 92 0
2880216 C#의 장점은 정적 언어치고 생산성이 존나 높다는게 장점임 [2] ㅆㅇㅆ(124.216) 08.10 158 0
2880214 C#에서 좀 어려운 개념은 span<T>지 ㅆㅇㅆ(124.216) 08.10 137 0
2880212 파이썬 입문에 부정적인건 파이썬 생태계 자체가 언어보다 패키지임 ㅆㅇㅆ(124.216) 08.10 144 0
2880211 C#이 나는 입문 언어로 제일 괜찮다 생각함. [2] ㅆㅇㅆ(124.216) 08.10 175 0
2880209 C# 커리큘럼 다시 보니까 [5] 루도그담당(58.239) 08.10 177 0
2880207 나는 노드.js가 여태까지는 생태계가 C#처럼 생각했음 [1] ㅆㅇㅆ(124.216) 08.10 122 0
2880205 크으~!~!~!~!~!~!!~~~!~! 열혈 ㄱㅆㅅㅌㅊ !!! ♥냥덩이♥갤로그로 이동합니다. 08.10 106 0
뉴스 “많이 아쉽지만 멈추게 됐다”…박성광, 안타까운 소식 전했다 디시트렌드 10.04
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2