1. COBOL 사용 문자
1) 숫자(Numeric) : 0 ~ 9
2) 영문자(Alphabetic) : 대문자[ A ~ Z ],소문자[ a ~ z ]
문자 | 설명 | ||
특수문자 | 구분 | 기능 | 의미 |
연산기호 | + - * / ** |
덧셈기호 뺄셈 및 연결기호 곱셈 기호 나눗셈 기호 거듭제곱 기호 |
|
대소관계 | = > < |
같다(equal) 보다 크다(greater than) 보다 작다(less than) |
|
기타 | , ; . '' ( ) △ $ \ |
COMMA Semi colon 마침표 또는 소수점 따옴표 좌괄호 우괄호 공백 달러(dollar sign) 원화기호( Won sign) |
2. 코딩 용지의 사용법
- RM COBOL 프로그램의 한 행은 80개 문자로 구성된다. 현재는 코딩용지를 사용하지 않고 편집기 프로그램을 사용한다.
열(column) | 설명 |
1~6열 | 일련번호 기입 1) 프로그램 내에 있는 명령문의 일련 번호를 기입한다. 현재는 거의 사용을 하지 않는다. |
7열 | 연결 및 주석 기호 기입 1) "-"(Hyphen) 를 표시하면 다음 행 12 column과 연결되었음을 의미하는데 문자 상수를 다음 행과 연결 시키기 위해서는 연결되는 행의 12 column에 quotation mark를 기입한후 계속해서 기술하면 된다. 2) "*"를 기입하면 해당 라인은 주석문(comment) 이 된다. 특히 7COLUMN에 "/" 가 있으면 프린터에 인쇄할 때 PAGE를 바꾸어 인쇄한다. |
8~11열 | A 영역( AREA A or A-Margin ) 1) DIVISION, SECTION, PARAGRAPH, 계층번호 01과 77, FD, SD등의 문장은 8 COLUMN부터 기술한다. |
12~72열 | B 영역( AREA B or B-margin) 1) 주로 실행되는 명령문을 기입하는 곳으로 SELECT문과 PROCEDURE DIVISION에서 기술하는 모든 실행문들은 12 COLUMN부터 기술된다. 2) 레벨번호 02-49,66,88,과 49,66,88과 일반명령문을 기술한다. |
73~80열 | 비고( Identification) 1) 식별영역으로서 참고사항을 기술하며 일반적으로 거의 사용하지 않는다. |
예문)
7 |
8 |
12 72 <-- 열(column) |
|||||||
* / |
DATA ********** 01 PROCEDURE SIJAK. |
DIVISION. 성적관리 프로그램 ************************************* HEAD-TITLE. 03 FILLER PIC X(10) VALUE SPACE. DIVISION. DISPLAY "SAMPLE PROGRAM 1 ". STOP RUN. |
(1) 코딩시 주의사항
1) 사용되는 모든 명령어는 대문자로 입력한다.
2) 한 칸에 한 글자씩만 기술하며 단어와 단어 사이에는 한 칸 이상의 공백을 두어야 한다.
3) 조건문 안에 포함되지 않은 명령어의 문장의 마지막에는 반드시 마침표를 찍어야 한다.
4) 단어와 기호, 기호와 기호사이는 반드시 한칸 이상의 공백을 두어야한다.
단, 마침표(.), 세미콜론(;), 컴마(,) 앞과 좌괄호(() 다음과 우괄호())앞은 예외이다.
예) COMPUTE A = B + (K - M).
5) 문장의 마지막에는 반드시(예외:조건문 ) 마침표(.)를 찍어야 한다.
6) 다음 문자들은 혼동하기 쉬운 문자이므로 특히 주의한다.
가. 영문자 I 와 숫자 1 , 나. 영문자 O 와 숫자 0
** 마침표와 관련된 명령문들
IF A > B
MOVE C TO D
IF A > C
MOVE D TO E
END-IF
END-IF.
3. RM COBOL의 단어
(1) 예약어, 명령어(RESERVED WORD)
예약어는 컴파일러가 인식하는 단어로 이미 기능과 용법이 지정되어 있으므로 사용사가 임의로 다른 목적이나 사용자 정의어로 사용할 수 없다.
1) KEY WORD(기본어)
- RM COBOL 프로그램에서 하나의 문장을 구성할 때 반드시 기술해야 하는 필수적인 단어로서 명령어를 말한다.
MOVE, ADD, DIVISION ...
2) OPTION WORDS(선택어)
- 프로그램 작성시 문맥이 잘 어울리게 하여주는 단어로 생략해도 무방하다.
TO, IN ...
3) CONNECTIVES(연결어)
- 단어와 단어, 문장과 문장을 연결해 주는 단어를 말한다.
4) FIGURATIVE CONSTANT(예약상수)
- 일정한 값 또는 특정한 상태를 지니고 있는 상징적인 단어로서 단수, 복수, 모두 같은 값으로 간주한다.
가. ZERO( ZEROS, ZEROES ) : 숫자 0 을 의미한다.
MOVE 0 TO WK-CNT.
MOVE ZERO TO WK-CNT.
MOVE ZEROS TO WK-CNT.
위의 세가지 명령문은 모두 동일하게 WK-CNT란 기억장소에 "0"을 저장한다.
나. SPACE( SPACES ) : 공백문자(BLANK)을 의미한다.
01 WK-SPACE PIC X(10).
MOVE SPACE TO WK-SPACE.
다. ALL "문자" : 기억장소에 지정한 문자로 모두 입력시켜 준다.
01 HEAD-LINE.
03 FILLER PIC X(80) VALUE ALL '*'.
라. QUOTE ( QUOTES ) : 인용부호를 의미하며 이중 인용부호를 사용 할 경우에는 유용하다.
마. HIGH-VALUE( HIGH-VALUES ) : 어떤 기억장소가 기억할 수 있는 가장 큰 값을 의미한다. 즉 16진수 'FF'을 의미한다. 레벨 넘버 77에서 초기치 값으로 HIGH-VALUE를 기억 시키고자 할 경우 항목은 문자형으로 되어야 하며 항목이 수치형일 경우는 PROCEDURE DIVISION에서 HIGH-VALUE를 지정할 수 있다.
바. LOW-VALUE( LOW-VALUES ) : 어떤 기억장소가 기억할 수 있는 가장 작은값을 의미한다. 즉 16진수 '00'을 의미한다. 레벨 넘버 77에서 초기치 값으로 LOW-VALUE를 기억 시키고자 할 경우 항목은 문자형으로 되어야 하며 항목이 수치형일 경우는 PROCEDURE DIVISION에서 LOW-VALUE를 지정할 수 있다.
사. POSITIVE : 어떤 기억장소의 값이 양수인가를 판단할 때 사용한다.
아. NEGATIVE : 어떤 기억장소의 값이 음수인가를 판단할 때 사용한다.
자. NUMERIC : 어떤 기억장소의 값이 숫자인가를 판단할 때 사용한다.
카. ALPHABETIC : 어떤 기억장소의 값이 영문자인가를 판단할 때 사용한다.
(2) 사용자 정의어( USER DEFINED WORD )
사용자 정의어는 프로그래머가 프로그램 작성시 필요에 따라 임의로 만들어 사용하는 단어(Word)로서 아래와 같은 규칙을 따라야 한다.
가. 한 단어는 30자를 초과할 수 없다.
나. 영문자, 숫자, -(hyphen)만 사용할 수 있으며 "-" 는 단어 중간에만 사용할 수 있다.
다. 단어는 최소한 하나 이상의 영문자를 포함해야 한다. 단, 패러그래프 이름, 섹션이름, 레벨번호, 세그먼트 번호는 숫자만으로 구성할 수 있다. 단어 중간에 공란(blank)이 있어서는 안된다.
라. 예약어는 사용자 정의어를 지정할 수 없다.
올바른 사용 예 | 잘못된 사용 예 |
IN-REC ACCENT94 WK-TOT-CNT |
123 ABC * DEF -ACCENT94 |
1) PROGRAM NAME(프로그램 이름)
- 프로그램 이름을 정의한 것으로 처음 6글자만 유효하다.
PROGRAM-ID. SAMPLE.
2) FILE NAME(파일 이름)
- 프로그램에서 사용하는 입출력 파일에 붙여주는 이름이다.
SELECT INPUT-FILE ASSIGN TO INPUT "SAMPLE.DAT".
3) DATA NAME( 데이터 이름 )
- 자료를 기억시켜두기 위한 기억 장소에 붙여지는 이름이다.
4) PROCEDURE NAME(절차 이름)
- PROCEDURE DIVISION을 구성할 때 하나의 블록(Block)명칭을 표시하는 것으로 패러그래프(Paragraph name)이라고 하며 프로그램의 진행 방향을 표시하는데 필요한 이름이다.
5) CONDITION NAME( 조건 이름 )
- 어느 하나의 기억 장소가 여러 개의 값을 가지는 경우 조건에 따라 각각의 값에 대하여 붙여지는 이름이며 DATA DIVISION에서 레벨넘버 88로 정의된다.
DATA DIVISION.
....
WORKING-STORAGE SECTION.
01 WORK-JANGSO.
03 READ-FLAG PIC 9(1) VALUE 0.
88 NO-DATA VALUE 1.
6) MNEMONIC NAME(특수한 장치 이름)
- 입출력 장치에 특수하게 부여하는 이름이다.
CONSOLE IS CON.
PRINTER IS PRN.
7) LITERAL(리터럴)
- 프로그램 내에서 사용되는 상수값이다.
가. NUMERIC LITERAL(수치 리터럴) : 수치값을 나타내는 것으로 다음과 같이 사용할 수 있다.
- 0-9, +, - , .으로 구성되며 18자를 초과할 수 없다.
- +, -, .는 자리수를 차지하지 않는다.
- 부호(+,-)도 표현할 수 있으며 생략하면 양수로 취급한다.
- .(소수점)는 가장 우측이 아닌 어느곳이든 기술할 수 있다.
1000 +12345 -1000 12.7 -12.55 -.05
나. NON-NUMERIC LITERAL(비수치 리터럴) : 문자값을 나타내는 것으로 다음과 같이 사용할 수 있다.
- 문자 값으로 표현될 때는 반드시 ' '나 " "로 둘러싸야 한다. 아니면 에러가 발생한다.
- 컴퓨터에 사용하는 모든 문자를 사용할 수 있다(한글,일본어 등등)
- 문자값으로 표현된 예약어는 본래의 의미를 상실하고 문자로만 간주한다.
- 하나의 인용부호 내에서 사용할 수 있는 문자열은 80자이다.
77 CHA-C1 PIC X(08) VALUE "업무선택".
출처 : https://m.blog.naver.com/kilokilo77/40016871233
'개발 > cobol' 카테고리의 다른 글
03_cobol 명령문 (0) | 2021.12.15 |
---|---|
02_cobol 구조 (0) | 2021.12.15 |