흐름도 언어
Flow chart language| 패러다임 | 필수적 |
|---|---|
| 설계자 | 카스텐 K고마드, 닐 D존스, 존 햇클리프 |
| 처음 등장한 | 1989, 1993, 1998 |
흐름도 언어(FCL)는 프로그램 분석 및 전문화의 기본 개념, 특히 부분 평가의 설명을 목적으로 설계된 단순한 필수 프로그래밍 언어입니다.이 언어는 1989년 카스텐 K에 의해 처음 소개되었다.Gomard와 Neil D.나중에 1993년 피터[2] 세스트소프트와 함께 쓴 책과 1998년 존 햇클리프의 강의[3] 노트에 다시 등장했습니다.[1]다음은 John Hatcliff의 강의 노트에 나타난 FCL에 대한 설명입니다.
FCL은 Von Neumann 컴퓨터가 프로그램을 실행하는 방식에 가까운 명령형 프로그래밍 언어입니다.프로그램은 암묵적인 상태, 즉 글로벌 메모리를 유지하면서 일련의 명령어에 따라 순차적으로 실행된다.FCL은 절차 개념이 없지만, 조건부 및 무조건 점프를 제공한다.FCL 프로그램의 추상 콜 그래프는 간단한 흐름도이기 때문에 FCL은 그 이름에 걸맞습니다.
FCL 프로그램은 지정된 값의 유한 시리즈를 입력으로 받아들여 그 결과 값을 생성한다.
구문
FCL 구문은 Backus-Naur 형식을 사용하여 지정합니다.
FCL 프로그램은 형식 파라미터 선언, 엔트리 라벨 및 일련의 기본 블록 목록입니다.
<p> ::= (" <x>* ")" (" <l> ")" <b> +처음에는 음이 아닌 정수 변수만 사용할 수 있습니다.
기본 블록은 레이블, 할당 목록 및 점프로 구성됩니다.
<b> ::= <l> ":" <a> * <j>할당은 식에 변수를 할당합니다.식은 삽입 n-ary 연산자의 상수, 변수 또는 응용 프로그램입니다.
<a> := <x> ":=" <e> := <c> <x> <o> "(" <e>* ")"프로그램 전체에서 발생하는 변수 이름은 프로그램 상단에 선언할 필요가 없습니다.프로그램 상단에 선언된 변수는 프로그램에 인수를 지정합니다.
값은 음수가 아닌 정수일 수 있으므로 상수일 수도 있습니다.예를 들어 0으로 나누기 등의 예외를 포함하는 부작용이 없는 한 일반적으로 운영 목록은 관련이 없다.
<c> ::= "0" "1" "2" ...<o> ::= "+" "-" "*" "=" "<" ">" ... 어디에=, <, ...는 C와 같은 의미를 가진다.의 의미는 x-y <0이면 x-y=0이다.
예
n > 2에 대해 n Fibonacci 번호를th 계산하는 프로그램을 작성합니다.
(n) init : x1 = 1 x2 = 1 fib : x1 = x1 + x2 t = x1 x1 = x2 = t n = - (n 1) > (n 2)의 경우 fibel exit : 반환 x2
여기서 파이브의 루프 불변성은 x1이 (i+2-1)th이고 x2가 (i+2) th피보나치 수이며, 여기서 i는 파이브가 점프한 횟수입니다.
프로그램의 실행 추적을 제시하여 n=4에 대한 메서드의 정확성을 확인할 수 있습니다.
여기서" a 는 v"{displaystyle로 v v로 프로그램의 최종 상태를 나타냅니다.
레퍼런스
- ^ 카스텐 KGomard와 Neil D.Jones. 부분평가에 의한 컴파일러 생성.G. X. Ritter, Information Processing '89 편집자 제11회 IFIP 세계컴퓨터콩그레스(World Computer Congress), 1139-1144페이지. IFIP, North-Holland, 1989년.
- ^ 닐 D. 존스, 카스텐 K고마드, 그리고 피터 세스트프트.부분 평가 및 자동 프로그램 생성.L.O.의 챕터들과 함께.안데르센과 T.모겐센프렌티스 홀 인터내셔널, 1993년 6월12 + 415 페이지 ISBN0-13-020249-5.http://www.itu.dk/~sestoft/pebook/pebook.http://http://www.itu.dk/ 에서 무료로 이용하실 수 있습니다.
- ^ 존 햇클리프.간단한 흐름도 언어를 사용한 온라인 및 오프라인 부분 평가 소개부분평가-실천과 이론, DIKU 1998 국제서머스쿨, John Hatcliff, Torben E.모겐슨, 피터 티만 (Eds. 1998)스프링거-벨락, 영국 런던, 20-82번지