FLOW-MATIC

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

FLOW-MATIC은 1950년대 초 그레이스 호퍼가 개발한, 영문과 유사한 구문을 사용하여 연산을 표현하는 최초의 프로그래밍 언어이다. 데이터 처리 문제를 영어 키워드로 표현하려는 아이디어를 바탕으로 개발되었으며, 데이터 연산과 데이터 설명을 명확히 분리한 최초의 시스템이었다. FLOW-MATIC은 COBOL의 형성에 영향을 미쳤으며, 자연어 프로그래밍을 사용하는 세계 최초의 프로그래밍 언어이기도 하다.

FLOW-MATIC - [IT 관련 정보]에 관한 문서
기본 정보
이름FLOW-MATIC
종류명령형 프로그래밍 언어
개발 시작1955년
개발자레밍턴 랜드, 그레이스 호퍼
영향을 받은 언어ARITH-MATIC, Laning and Zierler system
영향을 준 언어MATH-MATIC, AIMACO, COBOL
플랫폼UNIVAC I
📚 더 읽어볼만한 페이지
  • 코볼 - 2000년 문제
    2000년 문제는 과거 컴퓨터 시스템의 연도 표기 방식 때문에 2000년을 1900년으로 오인할 수 있는 잠재적 문제였으나, 전 세계적인 노력으로 큰 혼란 없이 해결되었고 정보 시스템 엔지니어들의 노력과 위기 관리의 중요성을 보여주었다.
  • 코볼 - 그레이스 호퍼
    그레이스 호퍼는 미국의 컴퓨터 과학자이자 해군 제독으로, 세계 최초의 컴파일러인 A-0을 개발하고 COBOL 개발에 기여하며 컴퓨터 시스템 표준화에 크게 기여했다.
  • 절차적 프로그래밍 언어 - C (프로그래밍 언어)
    C는 하드웨어 제어와 이식성이 뛰어난 고급 절차적 프로그래밍 언어로서, 다양한 분야에서 사용되며 후속 언어에 영향을 주었고, 성능과 효율성이 높지만 안전성 문제 개선이 필요한 언어이다.
  • 절차적 프로그래밍 언어 -
    펄은 래리 월이 개발한 텍스트 조작에 강점을 가진 다목적 프로그래밍 언어이며, 1987년 펄 1.0이 처음 공개된 이후 여러 버전 업데이트를 거쳐 객체 지향 프로그래밍과 유니코드 지원 기능을 추가했고, 현재 펄 5가 널리 사용되며 CPAN을 통해 방대한 모듈 생태계를 제공한다.

2. 개발

1950년대 초, 그레이스 호퍼는 사무용 데이터 처리 고객들이 수학 기호에 불편함을 느낀다는 것을 발견하였다. 1953년 말, 그녀는 데이터 처리 문제는 영어 키워드를 사용하여 표현해야 한다고 제안했지만, 랜드 경영진은 그 아이디어가 실현 불가능하다고 여겼다. 1955년 초, 그녀와 그녀의 팀은 그러한 프로그래밍 언어에 대한 명세를 작성하고 프로토타입을 구현했다. FLOW-MATIC 컴파일러는 1958년 초에 공개되었으며 1959년에 실질적으로 완성되었다.

3. 혁신과 영향

FLOW-MATIC은 영어와 유사한 구문을 사용하여 연산을 표현한 최초의 프로그래밍 언어였다. 또한 데이터에 대한 연산과 데이터의 설명을 명확하게 분리한 최초의 시스템이기도 했다.

래닝-지엘러 시스템은 대수 공식을 파싱하는 최초의 프로그래밍 언어였으며, 1954년 호퍼가 이를 알게 된 후 그녀의 연구 방향이 바뀌었다. 호퍼는 사무용 데이터 처리 고객들이 수학 기호에 불편해한다는 것을 발견하고, 1953년 말 데이터 처리 문제는 영어 키워드를 이용하여 표현되어야 한다고 주장하였으나, 당시에는 실현 불가능하다는 평가를 받았다. 그러나 1955년 초, 그녀와 팀은 프로그래밍 언어 사양을 작성하고 프로토타입을 구현하였다. FLOW-MATIC 컴파일러는 1958년 초에 대중들이 이용이 가능하게 되었으며 1959년에 실질적으로 완성되었다.

FLOW-MATIC은 COBOL 형성에 큰 영향을 미쳤다. FLOW-MATIC이 COBOL에 제공한 주요 요소는 다음과 같다.

* 입력 및 출력 파일, 인쇄 출력을 미리 정의했다.
* 데이터 이름을 한정했다( 또는 절).
* 파일 연산에 대한 절을 추가했다.
* 비유적 상수 (원래 , 여기서 의 수는 정밀도를 나타냄)를 사용했다.
* 프로그램 섹션 분할 (Flow-Matic 섹션에는 (환경부), (데이터부) 및 (절차부)가 포함)을 했다.

4. 샘플 프로그램

다음은 FLOW-MATIC 프로그램의 샘플이다.

```cobolfree
(0) INPUT INVENTORY FILE-A PRICE FILE-B ; OUTPUT PRICED-INV FILE-C UNPRICED-INV FILE-D ; HSP D .
(1) COMPARE PRODUCT-NO (A) WITH PRODUCT-NO (B) ; IF GREATER GO TO OPERATION 10 ; IF EQUAL GO TO OPERATION 5 ; OTHERWISE GO TO OPERATION 2 .
(2) TRANSFER A TO D .
(3) WRITE-ITEM D .
(4) JUMP TO OPERATION 8 .
(5) TRANSFER A TO C .
(6) MOVE UNIT-PRICE (B) TO UNIT-PRICE (C) .
(7) WRITE-ITEM C .
(8) READ-ITEM A ; IF END OF DATA GO TO OPERATION 14 .
(9) JUMP TO OPERATION 1 .
(10) READ-ITEM B ; IF END OF DATA GO TO OPERATION 12 .
(11) JUMP TO OPERATION 1 .
(12) SET OPERATION 9 TO GO TO OPERATION 2 .
(13) JUMP TO OPERATION 2 .
(14) TEST PRODUCT-NO (B) AGAINST ZZZZZZZZZZZZ ; IF EQUAL GO TO OPERATION 16 ; OTHERWISE GO TO OPERATION 15 .
(15) REWIND B .
(16) CLOSE-OUT FILES C ; D .
(17) STOP . (END)
```

이 샘플에는 프로그램의 실행문(`COMPILER` 섹션)만 포함되어 있다. 레코드 필드(`PRODUCT-NO`, `UNIT-PRICE` 등)는 `DIRECTORY` 섹션에 정의되어 있으며, 영어와 같은 문법을 이용하지는 않았다. 파일은 FILE-LETTER의 마지막 문자로 참조된다. (예: FILE-A는 A로 참조) 작업은 0부터 n까지 순서대로 번호가 매겨지고, 해당 순서대로 수행된다. (JUMP 등의 구문에 도달/실행되지 않는 한) 가장 높은 번호의 작업은 프로그램을 중단하는 작업이다.

5. 같이 보기

wikitext
* 그레이스 호퍼
* COBOL
* AIMACO

5.1. 관련 인물

그레이스 호퍼는 사무용 데이터 처리 고객들이 수학 기호에 불편해한다는 것을 발견하였다. 1953년 말, 그레이스 호퍼는 데이터 처리 문제는 영어 키워드를 이용하여 표현되어야 한다고 주장하였으나 랜드 관리부는 이 아이디어가 실현 불가능하다고 생각하였다. 1955년 초, 그레이스 호퍼와 그녀의 팀은 이러한 프로그래밍 언어에 대한 사양을 작성하고 프로토타입을 구현하였다. FLOW-MATIC 컴파일러는 1958년 초에 대중들의 이용이 가능하게 되었으며 실질적으로는 1959년에 완성되었다.

5.2. 관련 기술

COBOL은 FLOW-MATIC과 그 직계 후손인 AIMACO의 영향을 받아 형성되었다. FLOW-MATIC에서 가져온 주요 요소는 다음과 같다:

* 입력 및 출력 파일과 인쇄 출력을 미리 정의하는 것 (예: `INPUT 파일명 파일문자;`, `OUTPUT 파일명 파일문자;`, `HSP 파일문자;`)
* 데이터 이름 한정 ( `IN` 또는 `OF` 절).
* 파일 `READ` 연산에 대한 `IF END OF DATA (AT END)` 절.
* 비유적 상수 `ZERO` (원래 `ZZZ...ZZZ`, 여기서 `Z`의 수는 정밀도를 나타냄).
* 프로그램을 섹션으로 나누어 프로그램의 다른 부분을 분리. (Flow-Matic 섹션: 컴퓨터(환경부), 디렉토리(데이터부), 컴파일러(절차부)).