COBOL의 개요

 

1. COBOL언어의 역사

1959년 5월 미국의 컴퓨터 산업 및 User의 대표적인 전문가 들이 미 국방성에서 모임을 가졌다. 이 모임에서 기종과 무관하게 두루 사용이 가능한 공통의 "사무용 프로그램언어"의 필요성과 실현성이 검토되었고 이를 적극적으로 추진해야 된다는 결론에 도달하였다. 이 모임을 계기로 데이터시스템 언어협의회(CODASYL : The Conference On Data System Language)가 구성되었으며, 이 협의회에서 계속 수정과 개선을 거쳐 사무용 공통언어라는 의미의 COBOL(COmmon Business Oriented Language)이 발표되고 그해 12월 관계자에게 배부되었다.
COBOL언어의 설계목표는 · 인간언어 (영어)에 가장 가까운 언어를 사용하여 프로그램을 만들 수 있게 한다. · 프로그램에 대한 교육 및 이해를 쉽게 한다. · 프로그램의 호환성을 고려한다.
1960년 : COBOL-60 발표 - CODASYL에서 발표한 최초의 COBOL
1961년 : COBOL-61 발표 - 미국 정부에서 COBOL을 사용할 수 없는 컴퓨터는 조달품으로 인정하지 않을 방침을 세웠고, 이에따라 각 컴퓨터 메이커 들은 COBOL-61을 사용할 수 있는 Compiler를 비치함으로써 COBOL이 널리 보급되는 계기가 되었다.
1963년 : COBOL-63 발표 - SORT, 보고서 작성기능이 추가되어 COBOL-61 EXtended로 발표되었고 ASA(American Standard Association)에서 COBOL표준화 작업이 착수되었다. ASA는 1966년 USASI(United States of American Standard Institute)로 1969년 10월에는 ANSI(American National Standard Institute)로 그명칭이 바뀌었다. 따라서 이 COBOL을 ANSI COBOL이라고 부르기도 한다.
1965년 : COBOL-65 발표 - COBOL-61 EXtended에 reading, writing, 배열처리, 대용량 저장 파일의 처리를 할 수 있는 기능이 추가 되었다.
1968년 : COBOL-68 발표 - COBOL-6의 기능을 일부 추가하고 필요없는 기능을 일부 삭제하여 개선하였다.
1974년 : COBOL-74 발표 - Debug 및 Programming 등의 기능이 추가 되었다.
1985년 : COBOL-85 발표 - 구조적 Programming을 위한 기능 등이 추가 되었다.
 

2. COBOL언어의 특징

(1) 사무처리의 편리성
일반 사무처리용 언어로 개발된 언어이므로 다양한 파일처리를 구사할 수 있다.
(2) 프로그램의 공유성과 호환성
다른 기종 간의 호환성이 좋아 시스템 간의 이식시에도 수정이 거의 필요하지 않다. 따라서 많은 관공서와 기업체에서 사무처리용 언어로 채택하여 사용하고 있다.
(3) 유지 보수성
4개의 독립된 DIVISION으로 구성되어 있으므로, 프로그램의 변경 수정이 편리하다.
(4) 프로그램 내의 문서화
프로그램이 일반 영어 문법 형태이므로, 자체가 문서기능을 보유한다.
 

3. COBOL언어의 체계

3-1. 프로그램의 구성

COBOL프로그램은 4개의 DIVISION으로 구성되어 있고, 각 DIVISION에는 필요에 따라 몇개의 SECTION이 있고, 각 SECTION에는 필요에 따라 몇개의 PARAGRAPH가 있다. 각 PARAGRAPH에는 필요에 따라 몇개의 SENTENCE 또는 ENTRY가 있다. 그리고 이들은 몇개의 문자로 이루어진 단어들이 문법에 따라 조합된 CLAUSE 또는 STATEMENT로 구성된다.
 
(1) Section
COBOL언어의 규정에 의해서 설계된 하나 또는 그 이상의 Paragraph로 형성되며 실제로 이것이 프로그램의 일부분이다.
(2) Paragraph
같은 종류의 Sentence가 모인 집단을 말하며 Data Division을 제외한 나머지 Division에는 반드시 존재한다.
(3) Sentence
하나 이상의 Statement들이 모여 구성되며 반드시 서술이 끝난 다음에는 .(period)로써 구분되어야 한다.
(4) Statement
COBOL에서 사용하는 동사와 문장을 구성하는데 필요한 단어들의 집합을 말한다.
 

3-2. 프로그램의 내용

(1) IDENTIFICATION DIVISION (표제부)
표제부분으로 Program의 명칭, 작성자, 작성일자 등 Program에 대한 참고사항을 작성하는 부분이다.
(2) ENVIRONMENT DIVISION (환경부)
사용 컴퓨터의 설명부로 사용하고자 하는 컴퓨터의 입출력장치 들을 기술하는 부분이다.
(3) DATA DIVISION (기억장소 설명부)
프로그램의 입력부, 출력부와 임시로 쓰여질 부분을 기술하는 부분으로 자료의 크기,형식을 상세히 지정해 주고 자료가 기억장소에 기억될 장소이름을 정의한다.
(4) PROCEDURE DIVISION (실행부)
앞의 DIVISION에서 기술한 내용을 바탕으로 실제로 실행, 처리할 데이터의 처리방법과 순서를 지시하는 명령문 들을 기술하는 부분이다.
 
 

4. COBOL언어의 요소

4-1. 예약어 (Reserved Word)

프로그램 단어 중에서 그 기능이 미리 정해진 단어로서 프로그래머가 임의로 변경하여 사용할 수 없다.
예약어의 종류는 다음과 같다.
(1) Key Word : 프로그램 작성시 반드시 사용해야 하는 단어로 문법 형식 중에서 밑줄이 그어져 있다.
(2) Optional Word : 프로그램의 문법이 잘 통하도록 하는 단어로 생략이 가능하다.
(3) Figurative Constants : COBOL 내부에서 일정한 값을 가지고 있는 예약어로 미리 정해진 상수이다.
※ COBOL의 예약 상수
  • ZERO(S): 숫자 0을 표시
  • SPACE(S): 공백을 표시
  • ALL "상수": ALL이 기술된 기억 공간의 전부를 "상수"로 지정
  • QUOTE(S): 인용부호를 표시
  • HIGH-VALUE(S): 문자의 대소관계에서 최댓값을 표시
  • LOW-VALUE(S): 문자의 대소관계에서 최솟값을 표시
(4) Connective Word : 프로그램 문장에서 단어와 단어를 연결해 주거나논리를 연결해 주는 연결자로서 OF, IN, comma(,), OR, AND, NOT 등이 있다.
 

4-2. 비예약어 (Non-Reserved Word)

프로그램을 작성할 때 사요자가 임의로 붙여준 이름으로 변수명이나 제목 등에 사용되며 다음과 같이 일정한 규칙에 의하여 만들어진다.
(1) 숫자, 영문자, 하이픈(-)의 37개의 문자들로 구성되며 기타문자는 사용할 수 없다.
(2) 단어 하나의 길이는 30자 이내로 한다.
(3) 숫자만을 사용해서는 안되며 반드시 1자 이상의 영문자를 포함시켜야 한다.
(4) 하이픈(-)은 단어의 중간에만 사용 가능하며 중복하여 사용할 수 없다.
(5) 글자와 글자 사이에는 공백이 있어서는 안된다.
(6) 하나의 단어를 둘 이상의 의미로 사용할 수 없다
(7) 예약어를 사용할 수 없다.
(8) 따옴표를 사용하면 문자상수로 취급한다.
비예약어는 사용자단어라고도 하며 그 종류는 다음과 같다.
(1) Data Name : 처리될 데이터를 기억장치에 기억시킬 때 사용하는 단어로서 반드시 영문자 1자가 포함되어야 하며 파일명, 레코드명 등에 사용된다.
(2) Procedure Name : PROCEDURE DIVISION에서만 사용하고 여러 개의 명령문을 대표하며 Section Name, Paragraph Name 등이 있다.
(3) Special Name : 프린터 등의 장치나 기타 기기에 특수 이름을 붙이는 것으로 ENVIRONMENT DIVISION에 기입하고 PROCEDURE DIVISION에서 사용한다.
(4) Condition Name : 조건을 나타내는 변수로서 그 변수가 가지는 값에 대하여 붙이는 이름이다.

4-3. 상수 (Literal)

프로그램 내에서 직접 사용된 데이터로서 그 값을 정해 놓고 사용하며 숫자상수(numeric literal)와 문자상수(non-numeric literal)가 있다.
(1) 숫자상수 : 계산에 사용하는 숫자를 나타내는 값으로 0 - 9 까지의 숫자로 구성되며 +, -, 소숫점(.)을 사용할 수가 있다. 숫자상수는 아래의 규칙에 따라 만들어진다.
1) 숫자(0 - 9)와 부호(+, -, .)를 사용한다.
2) 길이는 정수부와 소수부를 포함하여 18자를 초과할 수 없다.
3) 1개의 부호와 1개의 소숙점을 가질 수 있다.
4) 부호가 없을 경우 양수로 취급한다.
[예]
1234 / +1234 / -1234 / +12.34 / -.1234
(2) 문자상수
문자들의 집합으로 된 문자열로서 따옴표(" ")로 묶어 주어야 하며 아래의 규칙에 따라 만들어진다.
1) 반드시 따옴표(" ")로 묶어 준다.
2) 최대의 길이는 보통 132자 까지 가능하다.
3) 문자열은 2047개의 문자까지 가능하다.
4) 따옴표(" ") 안에는 예약어도 사용할 수 있다.
[예]
"COMPUTER" / "1234" / "COBOL"