맨위로가기

FLOW-MATIC

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

1. 개요

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

더 읽어볼만한 페이지

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

2. 개발

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

3. 혁신과 영향

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

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

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


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

4. 샘플 프로그램

다음은 FLOW-MATIC 프로그램의 샘플이다.[21][22]

```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` 섹션에 정의되어 있으며, 영어와 같은 문법을 이용하지는 않았다.[23] 파일은 FILE-LETTER의 마지막 문자로 참조된다. (예: FILE-A는 A로 참조) 작업은 0부터 n까지 순서대로 번호가 매겨지고, 해당 순서대로 수행된다. (JUMP 등의 구문에 도달/실행되지 않는 한) 가장 높은 번호의 작업은 프로그램을 중단하는 작업이다.

5. 같이 보기

wikitext

5. 1. 관련 인물

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

5. 2. 관련 기술

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

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

참조

[1] 문서 Hopper (1959) p. 198.
[2] 문서 Hopper (1978) p. 16.
[3] 문서 Sammet (1969) p. 316
[4] 서적 Grace Hopper and the Invention of the Information Age MIT Press 2012-02-10
[5] 문서 Sammet (1978) p. 204.
[6] 간행물 FLOW-MATIC PROGRAMMING SYSTEM Remington Rand Univac a Division of Sperry Rand Corporation 1957
[7] 문서 Sperry Rand (1957) p. 7.
[8] 문서 Sammet (1969) p. 323.
[9] 문서 Hopper (1978) p. 18.
[10] 간행물 FLOW-MATIC PROGRAMMING SYSTEM Remington Rand Univac a Division of Sperry Rand Corporation 1957
[11] 문서 Hopper (1959) p. 198.
[12] 문서 Hopper (1978) p. 16.
[13] 문서 Sammet (1969) p. 316
[14] 문서 Sammet (1978) p. 204.
[15] 문서 Sperry Rand (1957) p. 7.
[16] 문서 Sammet (1969) p. 323.
[17] 문서 Hopper (1978) p. 18.
[18] 문서 Hopper (1959) p. 198.
[19] 문서 Hopper (1978) p. 16.
[20] 문서 Sammet (1969) p. 316
[21] 문서 Sperry Rand (1957) p. 7.
[22] 문서 Sammet (1969) p. 323.
[23] 문서 Hopper (1978) p. 18.



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com