디시인사이드 갤러리

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

갤러리 본문 영역

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

나르시갤로그로 이동합니다. 2025.08.11 00:26:50
조회 73 추천 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/09/01 - -
AD 가전디지털, 신학기 페스타! 운영자 25/08/29 - -
2885849 한국어 페이지 만들면 정부에서 금지시키는게 [2] ㅇㅇ(182.210) 08.31 73 0
2885847 박제용 [3] ♥냥덩이♥갤로그로 이동합니다. 08.31 69 0
2885846 남들은 웹페이지 하루면 된다고들 하는데 난 하루웬종일 걸리네 [7] ㅆㅇㅆ(124.216) 08.31 86 0
2885845 졸리당.. [1] ♥냥덩이♥갤로그로 이동합니다. 08.31 55 0
2885844 슬깅 [1] ♥냥덩이♥갤로그로 이동합니다. 08.31 48 0
2885843 UV 1970년 1월 1일 목요일 오전 9:00 FAT32 뭔지 아시는분 [1] 넥도리나(220.74) 08.31 64 0
2885842 할카스 레전드 ♥냥덩이♥갤로그로 이동합니다. 08.31 50 0
2885836 아카자처럼 [6] 개멍청한유라갤로그로 이동합니다. 08.31 75 0
2885834 영어야~ 사랑행~❤+ ♥냥덩이♥갤로그로 이동합니다. 08.31 39 0
2885833 섹스의 호흡 제 1형 [2] ♥냥덩이♥갤로그로 이동합니다. 08.31 76 0
2885832 CGV VIP 달고싶은데 중고나라에 표판매할까 ㅇㅅㅇ ㅇㅇ(223.38) 08.31 41 0
2885828 별 같지도않는 자격증 좇나 많은시대인데 나처럼 방구석10년차들은 뒷통수한방(1.213) 08.31 45 0
2885827 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 08.31 50 0
2885825 내 여자친구 사진인데 어떠니? [2] 메쿠이료갤로그로 이동합니다. 08.31 92 0
2885824 근데 러스트 안하고 C++ 하면 너한테 무슨 이득이 있는데? ㅇㅇ갤로그로 이동합니다. 08.31 73 0
2885823 러스트 믿거 2 나르시갤로그로 이동합니다. 08.31 52 0
2885822 러스트 믿거 1 나르시갤로그로 이동합니다. 08.31 41 0
2885821 금일 익일 이런 말을 한국인들도 씀? [7] ㅇㅇ(211.234) 08.31 73 2
2885817 쪼국 딸 쪼민도 극우? ♥냥덩이♥갤로그로 이동합니다. 08.31 46 0
2885815 러스트 빠돌이들이 양심이 있다면 Ada를 추천해야 하는 것입니다 나르시갤로그로 이동합니다. 08.31 156 0
2885814 Ada: 함수형 프로그래밍 지원 나르시갤로그로 이동합니다. 08.31 50 0
2885811 고양이 좋아했는데 집앞에 고양이가 똥을 자꾸 쳐 싸고 가서 [2] ㅆㅇㅆ(124.216) 08.31 62 0
2885807 러스트는 무조건 거르세요. 나르시갤로그로 이동합니다. 08.31 56 0
2885803 PHP 볼 때마다 생각나는 20 년 경력자. 프갤러(59.16) 08.31 68 0
2885802 내일은 9 월 시작이고 월요일 이다. 프갤러(59.16) 08.31 46 0
2885801 ai시대라는데 왜 기술의 발전이 더 이상 못한다는거임ㅋㅋㅋ 뒷통수한방(1.213) 08.31 50 0
2885799 AI 로 코딩한다는데 [1] 프갤러(59.16) 08.31 77 0
2885798 슈카 얘 좀 수상한 게 프갤러(211.210) 08.31 111 2
2885797 귀칼 보는데 그 상영관에서 내가 젤 나이 많은거 같드라..ㅇㅅㅇ [1] 헤르 미온느갤로그로 이동합니다. 08.31 64 0
2885796 php나 자바나 동급입니다. 프갤러(27.179) 08.31 66 0
2885795 그거 아시나요?? 저 내일 개학이랍미다 ㅇㅅㅇㅋㅋ ㅇㅇ(223.38) 08.31 56 0
2885794 html, css, js, php만 쓰면 씹틀딱임? [2] ㅇㅇ갤로그로 이동합니다. 08.31 85 0
2885793 핵융합기술 실패하면 인간은 멸종한다 ♥냥덩이♥갤로그로 이동합니다. 08.31 51 0
2885792 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 08.31 43 0
2885790 저 기생충 새끼를 어케 박멸할까.. [3] ♥냥덩이♥갤로그로 이동합니다. 08.31 110 0
2885789 애플이벤트 D - 10 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 08.31 36 0
2885788 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 08.31 33 0
2885787 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 08.31 55 0
2885785 ❤✨☀⭐⚡☘⛩ㄴㅏ님 ㅅㅣ작합ㄴㅣ당⛩☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 08.31 58 0
2885778 애들아 나 개학이다 [2] 공기역학갤로그로 이동합니다. 08.31 93 0
2885777 술담배게임 끊고 지금 새벽까지 잠도 못자고 5연ㄸ하는데 어캄ㅅㅂ ㅇㅇ(223.38) 08.31 77 0
2885772 귀칼보는데 cgv 웹 만든새끼 진짜 좆같네 프갤러(112.171) 08.31 74 0
2885767 제가 왜 러스트를 싫어해요? ㅎㅎ 나르시갤로그로 이동합니다. 08.31 69 0
2885766 진짜 말도 안되는건 내가 아직도 안잤단거임 ㅇㅅㅇ ㅇㅇ(223.38) 08.31 49 0
2885764 갑자기 옛날에 공장에서 일할때 의리있는 형 생각남 [1] 뒷통수한방(1.213) 08.31 83 0
2885761 안전한거 원하면 러스트 말고 Ada를 써라. 나르시갤로그로 이동합니다. 08.31 62 0
2885755 독서 토론회때 공의 경계 가져가도 될까? [1] 메쿠이료갤로그로 이동합니다. 08.31 71 0
2885753 취업시장이 좀 살아나야 이직욕구가 생기지 밀우갤로그로 이동합니다. 08.31 89 0
2885748 nimf와 kime는 아무 관련이 없다 ㅋㅋ [13] 나르시갤로그로 이동합니다. 08.31 132 0
2885746 ai 이미지 처리 프갤러(220.79) 08.31 75 0
뉴스 정상훈 “권상우 다음은 나일 줄”…18년 무명 “♥10살 연하 아내가 돈 더 많아” 디시트렌드 09.02
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2