stanford-oval/wikipedia huggingface dataset:
코볼
기능 > DATA DIVISION > 보고서 작성기

보고서 작성기(report writer)는 보고서를 작성하기 위한 선언형 기능이다. 프로그래머는 보고서 레이아웃 및 보고서를 만들어내는데 필요한 데이터만 지정하면 되며, 페이지 나누기, 데이터 형식 지정, 머릿말과 꼬릿말과 같은 것들을 다루기 위해 코드를 작성할 필요는 없다.
보고서는 보고서 파일들에 연결되며, 이 파일들은 보고서 작성기 문들을 통해서만 기록이 가능하다.
FD  report-out REPORT sales-report.
각 보고서는 DATA DIVISION의 REPORT SECTION에 정의된다. 보고서는 보고서의 머릿말, 꼬릿말, 상세 사항을 정의하는 보고서 그룹들로 나뉜다. 보고서들은 계층적 제어 차단(control break)을 두고 동작한다. 제어 차단은 키 변수가 값을 변경할 때 발생한다. 이를테면 고객 주문이 상세히 적힌 보고서를 만들 때 프로그램이 다른 고객의 주문에 도달하게 되면 제어 차단이 일어난다. 아래는 판매원의 판매 정보를 제공하고 유효하지 않은 레코드를 경고하는 보고서를 설명한 예이다:
RD  sales-report
           PAGE LIMITS 60 LINES
           FIRST DETAIL 3
           CONTROLS seller-name.

       01  TYPE PAGE HEADING.
           03  COL 1                    VALUE "Sales Report".
           03  COL 74                   VALUE "Page".
           03  COL 79                   PIC Z9 SOURCE PAGE-COUNTER.

       01  sales-on-day TYPE DETAIL, LINE + 1.
           03  COL 3                    VALUE "Sales on".
           03  COL 12                   PIC 99/99/9999 SOURCE sales-date.
           03  COL 21                   VALUE "were".
           03  COL 26                   PIC $$$$9.99 SOURCE sales-amount.

       01  invalid-sales TYPE DETAIL, LINE + 1.
           03  COL 3                    VALUE "INVALID RECORD:".
           03  COL 19                   PIC X(34) SOURCE sales-record.

       01  TYPE CONTROL HEADING seller-name, LINE + 2.
           03  COL 1                    VALUE "Seller:".
           03  COL 9                    PIC X(30) SOURCE seller-name.
위의 보고서 설명은 아래의 레이아웃을 기술한다:
Sales Report                                                             Page  1

Seller: Howard Bromberg
  Sales on 10/12/2008 were $1000.00
  Sales on 12/12/2008 were    $0.00
  Sales on 13/12/2008 were   $31.47
  INVALID RECORD: Howard Bromberg             XXXXYY

Seller: Howard Discount
...
Sales Report                                                            Page 12

  Sales on 08/05/2014 were  $543.98
  INVALID RECORD: William Selden      12O52014FOOFOO
  Sales on 30/05/2014 were    $0.00
4개의 문들이 보고서 작성기를 제어한다: INITIATE는 인쇄를 위해 보고서 작성기를 준비한다. GENERATE는 보고서 그룹을 인쇄한다. SUPPRESS는 보고서 그룹의 인쇄를 숨긴다. TERMINATE는 보고 처리를 끝낸다. 위의 판매 보고서의 예를 기준으로 PROCEDURE DIVISION은 다음의 모습과 같이 되어 있다:
OPEN INPUT sales, OUTPUT report-out
           INITIATE sales-report

           PERFORM UNTIL 1 <> 1
               READ sales
                   AT END
                       EXIT PERFORM
               END-READ

               VALIDATE sales-record
               IF valid-record
                   GENERATE sales-on-day
               ELSE
                   GENERATE invalid-sales
               END-IF
           END-PERFORM

           TERMINATE sales-report
           CLOSE sales, report-out
           .
기능 > PROCEDURE DIVISION > 프로시저

PROCEDURE DIVISION(통틀어 프로시저로 호칭)에 위치한 섹션과 문단은 레이블과 단순한 함수로 사용할 수 있다. 다른 디비전들과 달리 문단은 섹션 안에 꼭 올 필요는 없다. 실행은 프로그램의 프로시저를 통해 종료가 될 때까지 내려간다.
PERFORM 동사를 사용하면 프로시저를 함수로 쓸 수 있다. 이를 통해 제어권을 특정한 범위의 프로시저들에 넘긴 다음 마지막에 다다를 때에만 복귀한다.
특이한 제어 흐름은 지뢰를 만들어낼 수 있는데, 여기서 지뢰는 수행된 프로시저의 제어권을 예측하지 못한 시간대에 예측하지 못한 장소로 돌아오는 문제를 야기한다. 프로시저들은 세 가지 방법으로 접근할 수 있다: 1) PERFORM 문으로 호출, 2) GO TO 문으로 넘어옴, 3) 윗 문단의 아랫 부분으로 빠지면서 수행되는 실행을 통해. 이들을 결합해 사용하면 미정의 동작을 일으켜 지뢰를 만들어낸다.
구체적으로 말해 일정 범위의 프로시저들의 실행으로 말미암아, 이미 수행된 프로시저 범위의 과거 문을 제어 흐름이 통과하는 상황에서 발생한다.
이를테면 옆 그림의 코드에서 지뢰는 화면이 유효하지 않을 때 update-screen의 끝으로 이동한다.
화면이 유효하지 않으면 제어권은 fix-screen 섹션으로 넘어가며, 완료 시 update-screen을 수행한다. 이러한 재귀 현상은 미정의 동작을 일으켜서, 수행 중인 프로시저들이 두 개가 존재하게 된다. 이 지뢰는 update-screen 끝에 도달할 때 폭파되며, 두 위치 중 한 곳으로 돌아올 수 있음을 의미한다:
최초의 PERFORM 문
fix-screen의 PERFORM 문. 여기서 update-screen로 빠지면서 끝에 다다를 때 최초의 PERFORM으로 돌아온다.
기능 > PROCEDURE DIVISION > 문

코볼 2014를 기준으로 47개의 문들이 있으며(verb/동사라고 함) 다음의 넓은 분류로 묶을 수 있다: 제어 흐름, 입출력, 데이터 조작, 보고서 작성기. 보고서 작성기 문들은 보고서 작성기 섹션에서 다룬다.
기능 > PROCEDURE DIVISION > 문 > 제어 흐름

코볼의 조건문으로는 IF와 EVALUATE가 있다. EVALUATE는 마치 여러 개의 값들과 조건들을 평가하는 기능이 추가된 switch와 비슷한 문이다. 의사결정표를 구현하는데 사용할 수 있다. 이를테면 다음은 CNC 선반을 제어하는데 쓰일 수 있다.
EVALUATE TRUE ALSO desired-speed ALSO current-speed
    WHEN lid-closed ALSO min-speed THRU max-speed ALSO LESS THAN desired-speed
        PERFORM slow-down-machine
    WHEN lid-closed ALSO min-speed THRU max-speed ALSO GREATER THAN desired-speed
        PERFORM speed-up-machine
    WHEN lid-open ALSO ANY ALSO NOT ZERO
        PERFORM emergency-stop
    WHEN OTHER
        CONTINUE
END-EVALUATE
PERFORM 문은 조건이 참이 될 때까지 실행하는 반복문을 정의한다. (다른 언어들의 wihle과는 다름) 프로시저들이나 일정한 범위의 프로시저들을 호출하기 위해서도 쓰인다. (프로시저 단락 참고) CALL와 INVOKE는 각각 하위 프로그램들과 메소드를 호출한다. 하위 프로그램/메소드의 이름은 리터럴이나 데이터 항목이 되는 문자열 안에 포함된다. 매개변수들은 참조에 의해서나 내용을 통해서나(사본이 참조에 의해 전달될 때) 값에 의해(프로토타입을 이용할 수 있는 경우에만) 전달할 수 있다. CANCEL은 하위 프로그램들을 메모리로부터 해제한다. GO TO 절들은 프로그램이 지정된 프로시저로 건너뛰게 한다.
GOBACK 문은 반환문이며 STOP 문은 프로그램을 정지시킨다. EXIT 문에는 각기 다른 형식이 있다: 반환문, break 문, continue 문, 끝 표시기(end marker) 또는 프로시저를 빠져나는 기능으로 사용할 수 있다.
예외는 RAISE 문을 통해 발생시킬 수 있으며 PROCEDURE DIVISION의 DECLARATIVES 부분에 정의되는 핸들러(declarative로 부름)에 의해 포착된다. DECLARATIVES는 USE 문으로 시작하는 섹션들이며, 다루어져야 할 오류를 지정한다. 예외는 이름이나 오브젝트가 될 수 있다. RESUME은 DECLARATIVE 안에서 사용할 수 있으며, DECLARATIVES 밖의 프로시저나 예외를 일으킨 지점 이후의 문으로 건너뛸 수 있다. 다른 언어들과는 달리 포착되지 못한 예외들은 프로그램을 끝내지 못하며 프로그램은 영향을 받지 않은 채로 계속 실행된다.
기능 > PROCEDURE DIVISION > 문 > 입출력

파일 입출력은 자체 기술되는 OPEN, CLOSE, READ, WRITE 문들에 의해 처리되며, 이들은 다음의 세 가지와 나란히 쓰인다: REWRITE는 레코드를 업데이트한다. START는 특정 키로 레코드를 찾음으로써, 접근할 차기의 레코드를 선택한다. UNLOCK은 마지막으로 접근한 레코드의 락을 해제한다.
사용자 상호 작용은 ACCEPT와 DISPLAY를 이용하여 수행된다.
기능 > PROCEDURE DIVISION > 문 > 데이터 조작

다음의 동사들은 데이터를 조작한다:
INITIALIZE: 데이터 항목을 이들의 기본값으로 설정한다.
MOVE: 값을 데이터 항목들로 할당한다.
SET: 15개의 형식이 있다. 테이블 서브스크립트를 수정하고 오브젝트 참조를 할당하며 테이블 용적을 변경하는 등의 일을 한다.
ADD, SUBTRACT, MULTIPLY, DIVIDE, COMPUTE: 공식의 결과를 변수에 할당하는 COMPUTE와 함께 산술을 처리한다.
ALLOCATE, FREE: 동적 메모리를 처리한다.
VALIDATE: DATA DIVISION의 항목 설명에 지정된대로 데이터를 확인하고 분산한다.
STRING, UNSTRING: 전자의 경우 문자열을 이어 붙이고, 후자의 경우 문자열을 나눈다.
INSPECT: 문자열 안에 지정된 부분열의 인스턴스를 치환하거나 검수한다.
SEARCH: 테이블을 훑어보며 조건을 만족하는 첫 엔트리를 찾는다.
파일과 테이블은 SORT를 이용하여 정렬하고 MERGE 동사는 파일을 병합하고 정렬한다. RELEASE 동사는 정렬할 레코드를 제공하고 RETURN은 정렬된 레코드를 순서대로 검색한다.
기능 > PROCEDURE DIVISION > 범위 종단

IF, READ와 같은 일부 문들은 스스로가 문들을 포함할 수 있다. 이러한 문들은 두 가지 방법으로 끝을 맺는다:
포함이 끝나지 않은 모든 문들을 모두 종료하는, 암묵적 종단(implicit termination)을 가리키는 구두점(.)
가장 가까이 일치하는 개방된 문의 끝을 맺는 범위 종단자
*> 종단자 구두점 (암묵적 종단)
IF invalid-record
    IF no-more-records
        NEXT SENTENCE
    ELSE
        READ record-file
            AT END SET no-more-records TO TRUE.

*> 범위 종단자 (명시적 종단)
IF invalid-record
    IF no-more-records
        CONTINUE
    ELSE
        READ record-file
            AT END SET no-more-records TO TRUE
        END-READ
    END-IF
END-IF
구두점으로 끝나는 내재(nested)된 문들은 버그의 근원이 된다. 이를테면 다음의 코드를 살펴보자:
IF x
    DISPLAY y.
    DISPLAY z.
여기서 조건 x가 참일 때 y와 z를 모두 보여주는 것이 프로그래머의 의도이다. 그러나 실제로는 IF 문에서 실수로 DISPLAY y 뒤에 구두점을 잘못 넣었기 때문에 x의 값이 무엇인지에 관계 없이 z가 표시된다.
또 다른 버그로는 허상 엘스 문제의 결과인데, 두 개의 IF 문들이 하나의 ELSE에 연결될 수 있을 때 나타난다.
IF x
    IF y
        DISPLAY a
ELSE
    DISPLAY b.
위의 부분에서 ELSE는 IF x문이 아니라 IF y 문에 연결되며 버그가 발생한다. 명시적 범위 종단자들이 도입되기 전까지 이러한 버그를 예방하려면 ELSE NEXT SENTENCE를 안쪽 IF 뒤에 위치시켜야 했다.
기능 > PROCEDURE DIVISION > 자체 수정 코드

원래의 코볼 사양은 악명이 높은  ALTER X TO PROCEED TO Y  문을 지원하였고, 이를 위해 수많은 컴파일러들이 자체 수정 코드를 생성하였다. X와 Y는 프로시저의 레이블이고, ALTER 문 뒤에 실행되는 프로시저 X 안의 하나의  GO TO  문은  GO TO Y 를 의미한다.
수많은 컴파일러들이 이를 지원하지만 코볼 1985 표준에서는 이용하지 않을 것을 권고하였고 2002년에 삭제되었다.
기능 > Hello world

코볼의 Hello world 프로그램은 다음과 같다.
IDENTIFICATION DIVISION.
       PROGRAM-ID. hello-world.
       PROCEDURE DIVISION.
           DISPLAY "Hello, world!"
           .
기능 > Hello world > HELLO, WORLD

지금은 유명한 《C 프로그래밍 언어》(The C Programming Language)라는 책의 Hello world 프로그램 예제가 1978년 첫 출판되었을 때, 비슷한 메인프레임 코볼 프로그램 예제가 80컬럼의 천공 카드와 천공 카드 리더를 사용할 가능성이 매우 높은 JCL을 통해 제출되었다.
아래는 DATA DIVISION이 비어있으며 MVS 3.8J이 구동되는 시스템/370 허큘리스 에뮬레이터와 GNU/리눅스를 통해 테스트되었다. 2015년 7월에 작성된 이 JCL은 제이 무슬리(Jay Moseley)의 허큘리스 강좌와 샘플에서 가져온 것이다. 동시대의 코볼 프로그래밍을 유지한 채 HELLO, WORLD은 모두 대문자로 표시된다.
//COBUCLG JOB (001),'COBOL BASE TEST', 00010000
// CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1) 00020000
//BASETEST EXEC COBUCLG 00030000
//COB.SYSIN DD * 00040000
 00000* VALIDATION OF BASE COBOL INSTALL                                00050000
 01000 IDENTIFICATION DIVISION.                                         00060000
 01100 PROGRAM-ID. 'HELLO'.                                             00070000
 02000 ENVIRONMENT DIVISION.                                            00080000
 02100 CONFIGURATION SECTION.                                           00090000
 02110 SOURCE-COMPUTER.  GNULINUX.                                      00100000
 02120 OBJECT-COMPUTER.  HERCULES.                                      00110000
 02200 SPECIAL-NAMES.                                                   00120000
 02210     CONSOLE IS CONSL.                                            00130000
 03000 DATA DIVISION.                                                   00140000
 04000 PROCEDURE DIVISION.                                              00150000
 04100 00-MAIN.                                                         00160000
 04110     DISPLAY 'HELLO, WORLD' UPON CONSL.                           00170000
 04900     STOP RUN.                                                    00180000
//LKED.SYSLIB DD DSNAME=SYS1.COBLIB,DISP=SHR 00190000
// DD DSNAME=SYS1.LINKLIB,DISP=SHR 00200000
//GO.SYSPRINT DD SYSOUT=A 00210000
// 00220000
JCL을 제출한 뒤 MVS 콘솔은 다음을 보여주었다:
19.52.48 JOB    3  $HASP100 COBUCLG  ON READER1     COBOL BASE TEST
    19.52.48 JOB    3  IEF677I WARNING MESSAGE(S) FOR JOB COBUCLG  ISSUED
    19.52.48 JOB    3  $HASP373 COBUCLG  STARTED - INIT  1 - CLASS A - SYS BSP1
    19.52.48 JOB    3  IEC130I SYSPUNCH DD STATEMENT MISSING
    19.52.48 JOB    3  IEC130I SYSLIB   DD STATEMENT MISSING
    19.52.48 JOB    3  IEC130I SYSPUNCH DD STATEMENT MISSING
    19.52.48 JOB    3  IEFACTRT - Stepname  Procstep  Program   Retcode
    19.52.48 JOB    3  COBUCLG    BASETEST  COB       IKFCBL00  RC= 0000
    19.52.48 JOB    3  COBUCLG    BASETEST  LKED      IEWL      RC= 0000
    19.52.48 JOB    3  +HELLO, WORLD
    19.52.48 JOB    3  COBUCLG    BASETEST  GO        PGM=*.DD  RC= 0000
    19.52.48 JOB    3  $HASP395 COBUCLG  ENDED
콘솔의 10번째 줄에 결과를 위해 색으로 강조 표시되었으며, 이 강조 표시 색은 실제 콘솔 출력의 일부분은 아니다.
비평과 옹호 > 구조의 결여

1970년대에 프로그래머들은 구조적이지 않은 스파게티 코드를 구조적 프로그래밍 패러다임으로 옮기기 시작하였다. 컴퓨터 과학자이자 튜링상을 받은 에츠허르 데이크스트라는 "코볼을 이용하는 일은 마음을 무력하게 만든다. 이에 대한 교리는 범죄 공격으로 여겨진다."고 강조하면서 편집장에게 보내는 "어떻게 우리가 상처를 줄 수 있는 진실을 이야기하는가?"라는 제목의 1975년 편지에서 동시대 코볼의 일부를 비평하였다.
스파게티 코드의 한 가지 이유는 GO TO 문이다. GO TO 문을 코볼 코드에서 제거하려는 시도는 그러나 난해한 프로그램들을 만들고 코드 품질을 떨어트렸다. GO TO 문은 대체적으로 PERFORM 문과 프로시저로 대체되었는데 이로 말미암아 모듈식 프로그래밍을 촉진시켰고, 강력한 반복 기능으로 손쉬운 접근을 가능케 했다. 그러나 PERFORM 문은 오직 프로시저와 함께 쓰일 수 있으므로 반복문은 이들이 사용하는 곳에 위치되지 않아 프로그램을 이해하기 더 어렵게 만들게 된다.
코볼 프로그램들은 이음매가 없고 모듈성이 결여된 점으로 악명이 높았다. 코볼 코드는 프로시저를 통해서만 모듈성을 이룰 수 있어 대형 시스템에서는 부적절한 것으로 알려져 있었다. 데이터로의 접근을 제한하는 것이 불가능하였는데, 다시 말해 프로시저 하나가 어떠한 데이터 항목이라도 접근하여 수정할 수 있었다. 게다가 매개변수를 프로시저에 보내는 방법이 없었는데, 이를 빠트린 것을 두고 진 사멧은 위원회의 최대 실수로 간주하였다. 또다른 복합적 문제는 PERFORM THRU 기능에서 비롯한다. 제어권이 어떠한 프로시저로 점프할 수 있고 어떠한 프로시저로부터 반환을 받을 수 있다는 것을 말하며, 이는 난해한 제어 흐름을 만들고 프로그래머가 하나의 입구, 하나의 출구(single entry, single exit) 규칙을 무너뜨릴 가능성이 있다.
이러한 상황은 코볼이 더 많은 기능을 채용하면서 개선되었다. 코볼-74는 하부 프로그램들을 추가하여 프로그래머들에게 각 프로그램 부분이 접근할 수 있는 데이터를 제어하는 기능을 제공하였다. 그 뒤로 코볼-85는 내재형 하위 프로그램(nested subprogram)을 추가하여 프로그래머들이 하위 프로그램들을 숨길 수 있게 하였다. 데이터와 코드의 추가적인 제어는 2002년에 도입되어 객체 지향 프로그래밍, 사용자 지정 함수, 사용자 지정 자료형이 포함되었다.
비평과 옹호 > 호환성 문제

코볼은 이식성이 높은, 공통으로 쓰이는 언어를 목표로 개발된 언어였다. 그러나 2001년까지 대략 300개의 방언이 만들어졌다.
코볼-85는 그 이전의 버전들과 완전히 호환되지 못했고 이에 대한 개발은 논란이 있었다. 트래블러스 인슈런스(Travelers Insurance)의 CIO 조지프 T. 브로피는 막중한 프로그래밍 비용을 들이는 코볼 사용자들에게 새로운 표준의 구현을 알리는 일을 진두지휘하였다. 그 결과 ANSI 코볼 위원회는 2,200장 이상의 편지를 받았는데 대부분 부정적이었고 위원회가 변경을 취할 수 밖에 없게 만들었다. 한편, 코볼-85로의 전환은 그 뒤의 수년 동안 생산성 증가를 가져올 것으로 여겨졌고 변환 비용을 정당화시킬 수 있었다.
비평과 옹호 > 장황한 문법

COBOL: /koh′bol/, n.
공룡 메인프레임에 별 생각 없는 일들을 하기 위해 코드 그라인더들이 사용하는 빈약하고 장황하고 힘없는 언어. [중략] 그 이름 자체는 혐오나 공포의 의식 없이는 좀처럼 언급되지 않는다.
“
”
자곤 파일 4.4.8.
코볼 문법은 장황하다는 이유로 자주 비판을 받아왔다. 지지자들은 이것이 코드를 자체 문서화하여 프로그램 유지보수를 쉽게 하기 위한 것이라고 말한다. 또, 코볼은 프로그래머들이 배우고 쓰기 쉽게 하기 위해 만들어졌지만 관리자들과 같은 비기술 종사자들에게도 읽힌다. 가독성에 대한 열망으로 인해 명사, 동사, 절, 문장, 섹션, 디비전과 같은 영어와 비슷한 문법과 구조 요소들을 이용하게 되었다. 코볼 프로그램을 유지보수하는 사람들은 1984년까지는 이해하기 어려운 코드를 다루는데 고심해야 했으며 코볼-85의 주요 변경 사항들은 유지보수를 쉽게 할 수 있게 도와준다.
단기 위원회 구성원인 진 사멧은 "전문 프로그래머에게 제공하려는 시도는 거의 없었다. 주된 관심거리가 프로그래밍인 사람들은 코볼을 매우 언짢게 생각하는 경향이 있다."고 언급하며 그녀는 이를 코볼의 장황한 문법 때문인 것으로 보았다.
비평과 옹호 > 컴퓨터 과학 공동체와의 분리

코볼 공동체는 늘 컴퓨터 과학 공동체와는 분리되어 왔다. 어떠한 학술 컴퓨터 과학자들도 코볼의 설계에 참여하지 않았다. 위원회에 속한 전원이 상업 분야나 정부 쪽 출신이었다. 당시 컴퓨터 과학자들은 코볼 개발이 씨름하던 상용 파일 처리 문제 보다 수치 분석, 물리학, 시스템 프로그래밍과 같은 분야에 더 관심이 많았다. 진 사멧은 우아하지 못함, 설계 과정에 참여할 영향력 있는 컴퓨터 과학자들의 부족, 사무용 데이터 처리를 업신여기는 것 때문에 코볼의 인기가 없던 것을 초기의 잘난체 반응 때문인 것으로 보았다.
코볼 사양은 새로운 배커스-나우르 표기법이 아닌, 고유한 표기법이나 메타 언어를 사용했는데 그 이유는 이를 들었던 위원회 구성원들이 얼마 없었기 때문이었다. 이로 인해 가혹한 비평을 받았다.
나중에 코볼은 코볼을 아우르는 자료의 부족으로 고통을 받았다. 소개 서적들이 등장하는데 1963년까지 그러하였다. 미국 의회도서관에는 포트란의 경우 코볼의 2배 분량의 서적이, 베이직의 경우 코볼의 4배 분량의 서적이 있었다. 대학 교수들은 직업 학교용으로 간주된 코볼 대신 더 현대적인, 최신식의 언어들과 테크닉을 가르쳤다. CODASYL 코볼 위원회의 의장인 도널드 넬슨은 1984년에 "학계가 ... 코볼을 싫어한다"고 말했고 컴퓨터 과학 동문들은 "'코볼이 싫다'라는 것을 그들에게 주입시켰다"고 말했다. 마이크로 포커스의 2013년 조사에 따르면 대학 학계의 20%는 코볼은 구식이거나 죽었다고 생각했으며 55%는 그들의 학생들이 코볼이 구식이거나 죽었다고 생각하였다고 믿었다. 동일 조사에서 60%가 코볼을 가르쳐야 한다고 생각함에도 불구하고 학계의 25%만이 그들의 교육과정에 코볼 프로그래밍이 있었다. 반면, 2003년 코볼은 미국에서 정보 시스템 교육과정의 80%에 특별히 포함되었는데 이는 C++와 자바의 비율과 동일하다.
비평과 옹호 > 설계 과정에 대한 걱정

설계 과정이 효과적인지에 대한 의구심이 있었다. (가끔은 코볼에 참여한 사람들까지도) 단기 위원회 구성원 호워드 브롬버그는 개발 과정에서 통제가 거의 없었으며 "소속 인원의 지속성이 없고 ... 재능의 부족으로 홍역을 치렀다"고 말했다.
코볼 표준들은 수차례 지연으로 인해 고통을 받아왔다: 코볼-85는 희망했던 날보다 5년은 더 늦었고
COBOL 2002도 5년이 늦었으며, COBOL 2014는 6년이 늦었다. 지연을 방지하기 위해 표준 위원회는 다음 표준 리비전을 기다리지 않고 더 빨리 추가 기능을 더 빠르게 추가하는 선택적인 부록을 만드는 것을 허용하였다. 그러나 일부 위원회 구성원들은 구현체와 표준의 잦은 수정 간에 따르는 비호환성에 대해 걱정을 드러냈다.
비평과 옹호 > 다른 언어들에 미친 영향

코볼의 자료 구조는 뒤에 나온 프로그래밍 언어들에 영향을 주었다. 레코드와 파일 구조는 PL/I과 파스칼에 영향을 주었고, REDEFINES 절은 파스칼의 변종 레코드의 이전 것이었다. 분명한 파일 구조 정의들은 데이터베이스 관리 시스템의 개발보다 앞섰고 수집된 데이터는 포트란의 배열보다 훨씬 더 앞선 것이었다.
원시적인 수준으로 간주되긴 하지만 코볼의 COPY 기능은 include 지시자의 개발에 영향을 미쳤다.
이식성과 표준화에 초점을 둠에 따라 코볼로 작성된 프로그램들은 이식이 가능하였고 언어가 다양한 하드웨어 플랫폼과 운영 체제에 안착할 수 있었다. 게다가 잘 정의된 디비전 구조는 ENVIRONMENT DIVISION의 외부 참조 정의를 제한함으로써 특히 플랫폼 변경을 단순화하는 일에 기여하였다.
같이 보기

| --- | --- |
: 기술 포털
프로그래밍 언어 목록
프로그래밍 언어의 비교
CODASYL
참고

1 2  Specifically influenced COBOL 2002's object-oriented features.
↑  묘비는 현재 컴퓨터 역사 박물관에 있다.
↑  Vendor-specific extensions cause many implementations to have far more: one implementation recognizes over 1,100 keywords.
그레이스 호퍼. COBOL의 선구자격인 FLOW-MATIC의 발명가.
코볼 60 보고서 표지
화면이 유효하지 않을 때 지뢰를 끌어안게 된다.
비상주사무실

비상주 사무실(virtual office)은 가상오피스, 소호사무실 등 여러 단어로 불리긴 하나, 단어 그대로 상주하지 않으며 사업자 등록에 필요한 주소지 발급 등의 제반 서비스들을 제공하는 서비스다.
주로 실제 사무실이 필요로 하지 않거나 외근이 잦은 사업자가 사용하며 아래 4개 유형으로 구분할 수 있다.
부업을 준비하는 사업자
출장, 외근이 잦은 사업자
업종 제한이 있는 사업자
소규모 사업자
또한 비상주사무실 계약 시, 체크해봐야할 점은 아래와 같다.
업종 등록 가능한 사무실 주소지인가?
업종과 맞는 건축물 용도인가?
임대차계약서로 작성하는가?
관련 기업

* 커먼스페이스
* 베스트소호
* 그로우비즈
가오리역

| 가오리 |
| --- | --- |
 역명판(신설동 방면)
개괄
관할 기관 : 우이신설경전철
소재지 : 서울특별시 강북구 삼양로 426 (수유동)
좌표 : 북위 37° 38′ 27.7″ 동경 127° 1′ 0.7″﻿ / ﻿북위 37.641028°  동경 127.016861° ﻿ / 37.641028; 127.016861
개업일 : 2017년 9월 2일
역 번호 : L04
승강장수 : 2면 2선(상대식)
거리표
서울 경전철 우이신설선
북한산우이 기점 2.4km
   ← L03 4.19민주묘지  (0.9 km)  L05 화계 → (0.8 km)
     
가오리역(加五里驛, Gaori station)은 서울특별시 강북구 수유동에 위치한 서울 경전철 우이신설선의 전철역이다.
역사

2017년 3월 2일 : 가오리역으로 역명 결정
2017년 9월 2일 : 서울 경전철 우이신설선 개통과 함께 영업 개시
역 구조

2면 2선의 상대식 승강장을 갖추고 있으며, 스크린도어가 설치되어 있다.
역 구조 > 승강장

| 0 | 1 | 2 |
| --- | --- | --- |
| 상행 | ● 서울 경전철 우이신설선 | 북한산우이 방면 |
| 하행 | ● 서울 경전철 우이신설선 | 신설동 방면 |
역 주변

| 나가는 곳 | 방면 |
| --- | --- |
1: 수유2파출소 수유동우체국 수유2동주민센터
2: 강북구의회 우이119안전센터 강북문화예술회관 강북구도시관리공단 서울우이초등학교
인접한 역

| 서울 경전철 우이신설선 |
| --- | --- | --- |
| 4.19민주묘지 북한산우이 방면 | ● 서울 경전철 우이신설선 | 화계 신설동 방면 |
웨스트라피엣

웨스트라피엣(West Lafayette)는 인디애나주 티페카누군의 도시이다. 라피엣(Lafayette)과 워배시 강(Wabash River)을 사이에 두고 이웃하고 있으며, 인디애나주에서 가장 인구밀도가 높은 도시이다. 퍼듀 대학교의 소재지이다.
인디애나주 서부에 있지만, 시카고에서 자동차로 2시간 남짓 걸리는 거리에 있어서 시카고와도 가까운 편이다.
인구

| 인구조사 | 인구 | Note | %± |
| --- | --- | --- | --- |
| 1880년 | 717 |  | — |
| 1890년 | 1,242 |  | 73.2% |
| 1900년 | 2,302 |  | 85.3% |
| 1910년 | 3,867 |  | 68.0% |
| 1920년 | 3,830 |  | −1.0% |
| 1930년 | 5,095 |  | 33.0% |
| 1940년 | 6,270 |  | 23.1% |
| 1950년 | 11,873 |  | 89.4% |
| 1960년 | 12,680 |  | 6.8% |
| 1970년 | 19,157 |  | 51.1% |
| 1980년 | 21,247 |  | 10.9% |
| 1990년 | 25,907 |  | 21.9% |
| 2000년 | 28,778 |  | 11.1% |
| 2010년 | 29,596 |  | 2.8% |
| 2019 (추산) | 50,996 |  | 72.3% |
출처: US Census Bureau
기후

| West Lafayette, Indiana의 기후> 월 | West Lafayette, Indiana의 기후> 1월 | West Lafayette, Indiana의 기후> 2월 | West Lafayette, Indiana의 기후> 3월 | West Lafayette, Indiana의 기후> 4월 | West Lafayette, Indiana의 기후> 5월 | West Lafayette, Indiana의 기후> 6월 | West Lafayette, Indiana의 기후> 7월 | West Lafayette, Indiana의 기후> 8월 | West Lafayette, Indiana의 기후> 9월 | West Lafayette, Indiana의 기후> 10월 | West Lafayette, Indiana의 기후> 11월 | West Lafayette, Indiana의 기후> 12월 | West Lafayette, Indiana의 기후> 연간 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 역대 최고 기온 °F (°C) | 69 (21) | 73 (23) | 86 (30) | 89 (32) | 94 (34) | 105 (41) | 105 (41) | 100 (38) | 98 (37) | 92 (33) | 78 (26) | 73 (23) | 105 (41) |
| 일평균 최고 기온 °F (°C) | 34 (1) | 39 (4) | 50 (10) | 63 (17) | 73 (23) | 83 (28) | 85 (29) | 84 (29) | 78 (26) | 65 (18) | 51 (11) | 38 (3) | 62 (17) |
| 일평균 최저 기온 °F (°C) | 19 (−7) | 23 (−5) | 31 (−1) | 41 (5) | 51 (11) | 61 (16) | 64 (18) | 63 (17) | 55 (13) | 44 (7) | 34 (1) | 23 (−5) | 42 (6) |
| 역대 최저 기온 °F (°C) | −23 (−31) | −20 (−29) | −3 (−19) | 7 (−14) | 25 (−4) | 35 (2) | 43 (6) | 37 (3) | 29 (−2) | 19 (−7) | 6 (−14) | −16 (−27) | −23 (−31) |
| 평균 강수량 인치 (mm) | 1.86 (47) | 1.84 (47) | 2.67 (68) | 3.54 (90) | 4.19 (106) | 4.10 (104) | 3.97 (101) | 3.46 (88) | 2.66 (68) | 2.89 (73) | 2.97 (75) | 2.51 (64) | 36.66 (931) |
| 평균 강설량 인치 (cm) | 6.5 (17) | 4.8 (12) | 2.9 (7.4) | 0.7 (1.8) | 0 (0) | 0 (0) | 0 (0) | 0 (0) | 0 (0) | 0.3 (0.76) | 0.8 (2.0) | 5.2 (13) | 21.2 (54) |
| 평균 강수일수 (≥ 0.01 in) | 9.6 | 7.7 | 10.2 | 10.9 | 10.6 | 10.4 | 8.9 | 8.4 | 7.6 | 8.3 | 9.8 | 10.1 | 112.5 |
| 평균 강설일수 (≥ 0.1 in) | 5.3 | 3.3 | 1.7 | 0.3 | 0 | 0 | 0 | 0 | 0 | 0.1 | 0.9 | 3.5 | 15.1 |
출처 1: The Weather Channel (January record high)
출처 2: NOAA: Lafayette
하동 법성선원 선원제전집도서

| --- | --- |
 경상남도의 유형문화재

종목: 유형문화재 (구)제645호  (2019년 4월 18일 지정)
소유: 대한불교 조계종 법성선원 (법성선원 선원장)
주소: 경상남도 하동군 옥종면 고무능골길 63-45
정보: 국가유산청 국가유산포털 정보
하동 법성선원 선원제전집도서(河東 法成禪院 禪源諸詮集都序)는 대한민국 경상남도 하동군 옥종면 법성선원에 있는 선원제전집도서이다. 2019년 4월 18일 경상남도의 유형문화재 제645호로 지정되었다.
지정 사유

「선원제전집도서」는 중국 화엄종의 제5조인 규봉종밀(圭峯宗密)의 만년작으로서의 자신의 ｢선원제전집(禪源諸詮集)｣ 101권에 대하여 지은 서문이다.
｢선원제전집(禪源諸詮集)｣은 현재 전해지지 않으므로 ｢선원제전집도서(禪源諸詮集都序)｣를 통해 ｢선원제전집｣의 내용을 짐작할 수 있다.
하동 법성선원 소장본은 '1493년'이라는 명확한 간행 기록(刊記)이 있는 중요본이다.
박상은 (1949년)

| 박상은 朴商銀 |
| --- | --- |
출생: 1949년 9월 1일
성별: 남성
국적: 대한민국
경력: 제18·19대 국회의원
직업: 정치인
| 박상은 |
| --- | --- |
출생: 1949년 9월 1일(1949-09-01)(75세) 대한민국 경기도 강화군 삼산면
성별: 남성 
국적: 대한민국
본관: 밀양
학력: 연세대학교 정법대학 법학 학사 연세대학교 대학원 법학 석사
군복무: 해군 대위 전역
종교: 무종교
의원 선수: 2
의원 대수: 18·19
정당: 국민의힘
지역구: 인천 중구·동구·옹진군(18·19)
박상은(朴商銀, 1949년 9월 1일 ~ )은 대한민국의 정치인으로, 제18·19대 국회의원이다.
학력

1962년 해명국민학교 졸업
1965년 인천송도중학교 졸업
1968년 경동고등학교 졸업
1972년 연세대학교 법과대학 LL.B.
1978년 연세대학교 대학원 법학 석사
경력

대한전선 수출부 입사
대한제당 대표이사 사장(1994/11 - 1999/12).부회장(1999/12 - 2000/06)
한국무역협회이사 및 통상위원
대한상공회의소 이사 및 SOC강화위원
인천상공회의소 부회장
전경련 대외협력위원회 자문의원
iTV 경인방송 대표이사 회장
인천광역시 정무부시장
민주당 정책위원회 산하 ’수도권 발전기획단’단장
한국학술연구원 이사장
외교통상부 경제통상 대사
도산 안창호 선생기념사업회 이사
죽산 조봉암 선생 추모기념사업회 고문 및 이사장
대한민국 해군OCS장교 중앙회 명예회장
제17대 대통령직인수위원회 국가경쟁력강화특위 상임자문위원
최재형 열린캠프 공동자문위원장
국민의힘 인천을 살리는 선거대책위원회 선거대책본부 상임고문
국민의힘 인천시당 상임고문
제22대 국회의원선거 국민의힘 인천선거대책위원회 공동선거대책위원장
의정 활동

2008년 5월 ~ 2012년 2월 제18대 한나라당 국회의원(인천 중구,동구,옹진군)
국회 국토해양위원회 위원,유니세프의 국회친구들 부대표
바다와경제국회포럼 공동대표
한-크로아티아 의원친선협회 부회장
한-터키의원친선협회 이사
한-포루투갈 의원친선협회 이사
대한민국 해양연맹 부총재
인천경제시민포럼 이사장
18대 후반기 국회 보건복지위원회 위원
2012년 2월~ 2016년 5월 제19대 새누리당 국회의원(인천 중구 동구 옹진군)
범죄 이력

불법 정치자금 혐의로 징역 8개월, 집행유예 2년, 벌금 300만원, 충징금 2억 410여만원 선고받았고 또한 이 사건으로 인해 의원직을 상실하였다.
같이 보기

중구·동구·옹진군
인천 중구의 국회의원
인천 동구의 국회의원
옹진군의 국회의원
인천광역시 부시장
김하늘 (동음이의)

김하늘은 다음 인물을 가리킨다.
실존 인물

김하늘(1978 ~ )은 대한민국의 배우이다.
김하늘(1988 ~ )은 대한민국의 골프 선수이다.
김하늘(1990 ~ )은 대한민국 배우 강하늘의 본명이다.
김하늘(1992 ~ )은 대한민국의 방송인이다.
김하늘(1998 ~ )은 대한민국의 리그 오브 레전드 프로게이머이다.
김하늘(2002 ~ )은 대한민국의 피겨스케이팅 선수이다.
가공 인물

문희 (드라마)의 등장인물
미쓰 와이프의 등장인물
19-Nineteen의 등장인물
아무것도 하고 싶지 않아의 등장인물
같이 보기

제목에 "김하늘" 항목을 포함한 모든 문서
마가리카네촌

| --- | --- |
한자 표기: 勾金村
가나 표기: まがりかねむら
폐지일: 1956년 9월 3일
폐지 이유: 신설합병
이후 자치체: 가와라정
폐지 당시의 정보
나라:  일본
지방: 규슈 지방
도도부현: 후쿠오카현
군: 다가와군
인구: 10,131명 (1955년)
마가리카네촌(勾金村)은 후쿠오카현 다가와군에 있던 촌이다. 현재의 가와라정 일부에 해당한다.
임서연

| 임서연  |
| --- | --- |

본명: 도지원
출생: 1982년 10월 21일(1982-10-21)(42세) 부산광역시
국적: 대한민국
직업: 탤런트, 영화배우
활동 기간: 1996년 ~ 현재
학력: 동덕여자대학교 방송연예학과
웹사이트: 임서연 - 인스타그램 임서연의 미니홈피 - 싸이월드
임서연(1982년 10월 21일 ~ )은 대한민국의 배우이다.
학력

브니엘중학교
일산동고등학교
동덕여자대학교 방송연예학과 학사
출연작 > 드라마

1996년 MBC 《사춘기》
1997년~1998년 KBS1 《용의 눈물》 - 세종 비 소헌왕후 심씨 역
1997년~1998년 KBS 《신세대 보고 - 어른들은 몰라요》
1998년 SBS 《나 어때》
1999년 KBS2 《학교》 - 배소연 역
1999년 KBS2 《어사 출두》
1999년 KBS2 《전설의 고향 - 궁녀》
2000년 KBS2 《반쪽이네》 - 선희 동생 역
2000년 SBS 《골뱅이》
2001년 MBC 《홍국영》
2001년 KBS2 《멋진 친구들 시즌2》
2001년 KBS2 《여자는 왜?》
2002년 KBS1 《제국의 아침》  - 청주남원부인 김씨 역
2002년 SBS 《순수의 시대》 - 윤경 역
2004년 SBS 《토지》 - 두리 역
2007년 KBS2 《최강 울엄마》
2007년 tvN 《막돼먹은 영애씨 시즌 1》 - 변지원 역
2007년 KBS2 《한성별곡》 - 월향 역
2007년 tvN 《막돼먹은 영애씨 시즌 2》 - 변지원 역
2008년 tvN 《막돼먹은 영애씨 시즌 3》 - 변지원 역
2008년 MBC 《밤이면 밤마다》
2008년 SBS 《타짜》 - 사장 역
2008년 tvN 《막돼먹은 영애씨 시즌 4》 - 변지원 역
2009년 tvN 《막돼먹은 영애씨 시즌 5》 - 변지원 역
2009년 tvN 《막돼먹은 영애씨 시즌 6》 - 변지원 역
2009년 tvN 《세남자》 - 나주리 역
2009년 KBS2 《수상한 삼형제》 - 지성미 역 (특별출연)
2010년 tvN 《막돼먹은 영애씨 시즌 7》 - 변지원 역
2010년 KBS2 《구미호: 여우누이뎐》 - 계향 역
2010년 tvN 《막돼먹은 영애씨 시즌 8》 - 변지원 역
2011년 tvN 《막돼먹은 영애씨 시즌 9》 - 변지원 역
2012년 tvN 《막돼먹은 영애씨 시즌 10》 - 변지원 역
2012년 OCN 《뱀파이어 검사 시즌 2》 - 변지원 역 (특별출연)
2013년 tvN 《막돼먹은 영애씨 시즌 11》 - 변지원 역
2018년 tvN 《막돼먹은 영애씨 시즌 16》 - 변지원 역(특별출연)
2018년 tvN 《식샤를 합시다 3》 - 선우선의 사촌누나 역
출연작 > 영화

2000년 《단적비연수》 - 어린 연 역
2002년 《4발가락》 - 김미애 역
2008년 《모던 보이》 - 이시다 요코 역
출연작 > 광고

2008년 SK패션 루츠 (with 고세원, 김현숙, 최원준)
2013년 NH농협 3박자 유통혁신
제6회 전국동시지방선거 대전 동구의회

다음은 제6회 전국동시지방선거의 대전 동구의회의원 선거결과를 정리한 문서이다. 해당 선거에서 동구의회는 지역구의원 9명과 비례대표의원 2명을 선출했다.
지역구 선거구

| 선거구명 | 관할 지역 | 선출 의원 수 |
| --- | --- | --- |
| 동구 가선거구 | 중앙동, 홍도동, 삼성동 | 2 |
| 동구 나선거구 | 신인동, 효동, 산내동 | 2 |
| 동구 다선거구 | 판암1동, 판암2동, 용운동, 대동, 자양동, 대청동 | 3 |
| 동구 라선거구 | 가양1동, 가양2동, 용전동, 성남동 | 2 |
비례대표 선거 결과 > 비례대표 당락

| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| --- | --- | --- | --- | --- | --- | --- | --- |

새누리당

| 순번 | 후보 | 당락 | 비고 |  |  |  |  |
| 1 | 박영순 | 당선  |  |  |  |  |  |
| 2 | 성용순 | 낙선  |  |  |  |  |  |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| --- | --- | --- | --- | --- | --- | --- | --- |

새정치민주연합

| 순번 | 후보 | 당락 | 비고 |  |  |  |  |
| 1 | 박민자 | 당선  |  |  |  |  |  |
전체 결과

| 정당 | 정당 | 지역구 | 비례대표 | 합계 |
| --- | --- | --- | --- | --- |
|  | 새누리당 | 5 | 1 | 6 |
|  | 새정치민주연합 | 4 | 1 | 5 |
유선호 (2002년)

| 유선호  |
| --- | --- |
2018년 9월 17일 제작발표회
출생: 2002년 1월 28일(2002-01-28)(23세) 대한민국 인천광역시
직업: 배우
활동 기간: 2017년 ~ 현재
소속사: 흰엔터테인먼트
부모: 부모님
형제자매: 남동생 (유승호)
웹사이트:  유선호 - 인스타그램  유선호 - X  유선호 - 페이스북 
유선호(柳善皓, 2002년 1월 28일~)는 대한민국의 배우이다. 과거 오디션 프로그램 프로듀스 101 시즌2에 출연하였다.
유선호는 2002년 1월 28일 아버지와 어머니 김영애 사이에 인천광역시에서 2남 중 장남으로 출생하였으며 지난날 한때 경기도 김포시에서 잠시 유아기를 보낸 적이 있는 그는 경기도 시흥시에서 성장하였고 그의 형제자매로는 남동생 유승호가 있다. 2017년 선풍적인 인기를 끈 프로듀스101 시즌 2에 출연하여 같은 소속사인 라이관린과 함께 '병아리 연습생'이라는 슬로건으로 많은 사람들의 이목을 끌고 '삼시오끼'라는 별명을 얻은 바 있다.
2022년부터 KBS2 《1박 2일》에 고정으로 출연 중이다.
학력

월포초등학교
월곶중학교
한림연예예술고등학교 연예과 (졸업)
음반 목록 > EP

| 제목 | 정보 | 순위> KOR | 순위> JPN | 순위> US | 판매량 |
| --- | --- | --- | --- | --- | --- |
| 봄, 선호 |  발매일: 2018년 4월 11일  레이블: 큐브 엔터테인먼트, 로엔 엔터테인먼트  포맷: CD, 디지털 다운로드 트랙리스트 Prelude : 너를 생각해  봄이 오면  푸른 별 하나  보고 싶어  봄이 오면 (Inst.)  | 9 | — | — |  KOR: 14,159+ |
출연 작품 > 예능

Mnet 《PRODUCE 101 시즌 2》(2017년) - 참가자
tvN 《둥지탈출 2》(2018년) - 그리스편 고정 출연자
tvN 《둥지탈출 3》(2018년) - 말레이시아편 고정 출연자
JTBC 《뭉쳐야 뜬다2》(2018년) - 이탈리아편 고정 출연자
tvN 《애들 생각》(2019년) - 출연자
라이프타임채널 《아이돌다방》(2019년) - 진행자
tvN 《냐옹은 페이크다》(2020년) - 고정
SBS 《진짜 농구, 핸섬타이거즈》(2020년)
KBS2 《1박 2일》(2022년~) - 고정