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

+ Recent posts