포식 프로그래밍

Predicative programming

서술형 프로그래밍은 프로그램 사양정교함을 위한 공식적인 방법의 원래 이름이며, 최근에는 에릭 헤너에 의해 발명된 프로그래밍의 실제 이론으로 불린다.각 규격은 허용 가능한 컴퓨터 동작에 대해 참이고 허용 불가능한 동작에 대해서는 거짓인 이진(부울) 표현이라는 것이 중심 사상이다.세련됨은 단지 함축적인 것이라는 것을 뒤따른다.이것은 가장 간단한 공식 방법이며, 가장 일반적인 것으로 순차적, 병렬적, 독립적, 통신적, 종료적, 비지연적, 자연적, 실시간, 결정론적, 확률적 프로그램에 적용되며, 시간과 공간의 경계를 포함한다.

프로그래밍 언어의 명령어는 특별한 사양 사례로 간주된다. 즉, 그러한 명세는 보완할 수 있다.예를 들어 변수가 x 및 z 인 경우 x{\y +1 명령어는 규격(이진 식) x x x{{\ x= y +1 +1 {\}과 동일하다.= y = = y (가 할당 전 변수의 값을 나타내는 은 할당 후 프로그램 변수의 값을 나타낸다.만약 그 사양은 x′{\displaystyle x'}> 베{이\displaystyle}, 우리는 쉽게)y{이\displaystyle}+1또는 refines, 또는 도구를 암시하는){\displaystyle)} 말한다(){\displaystyle x}:= y{\displaystyle는 y}+1)⇒()′{\displaystyle x'}>y{\displaystyle는 y}),:증명한다. )′ y y

루프 프루프는 크게 단순화된다.예를 들어, (가) 정수 변수인 경우 다음을 증명하기 위해

>0 x := x–1 od

규격 x x =0을(를) 기준 또는 구현한다.

>0인 x x {\ –1; ( x =0) {\ ok fi {\}x

서 o = ( x = { )는 비어 있거나 아무 것도 하지 않는 명령이다.루프 불변성 또는 최소 고정점은 필요하지 않다.여러 개의 중간 얕고 깊은 출구가 있는 루프도 같은 방식으로 작동한다.프로그램 명령과 사양을 의미 있게 혼합할 수 있기 때문에 이러한 간단한 형태의 증명도 가능하다.

실행 시간(상한, 하한, 정확한 시간)은 시간 변수를 도입하는 것만으로 동일한 방법으로 증명할 수 있다.종료를 증명하기 위해, 집행 시간이 유한하다는 것을 증명한다.불수정을 증명하려면 실행 시간이 무한하다는 것을 증명해야 한다.예를 들어 시간 변수가 이고 반복 횟수를 계산하여 시간을 측정한 다음 x {\ x(가 처음에 음수가 아닐 때 이전 while-roop의 실행이 x{\ 을(를) 사용하고,x {\ x이(으)가 음수)일 때 영구히 소요됨을 입증하십시오.

만약 x{\displaystyle)}>0 다음{\displaystyle)}:=-1{\displaystyle)}–1;t{\displaystyle지}:)t{\displaystyle지}+1;(){\displaystyle x}≥0⇒ t′{\displaystyle the의 생략}= t{\displaystyle t}+){\displaystyle x})∧(){\displaystyle)}<0⇒ t′{\displaystyle.to의 생략}=csi) 기타 k{\ fi (({\= + x ∧( <0 =s}) =)

여기서 = ( x x= { t = t

참고 문헌 목록

외부 링크