맨위로가기

코볼

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

1. 개요

코볼(COBOL)은 1959년 CODASYL에 의해 개발된 공통 사무 처리용 프로그래밍 언어이다. 1960년 COBOL-60이 최초 명세서로 발행된 이후, 사무 처리 시스템의 표준 언어로 전 세계적으로 보급되었다. 1950년대 프로그래밍 비용 증가에 대한 우려와 통일된 사무 지향 언어의 필요성으로 개발되었으며, FLOW-MATIC의 영향을 받아 긴 변수 이름, 영어 단어 기반 명령어, 데이터 기술과 명령의 분리를 특징으로 한다. COBOL은 ANSI와 ISO/IEC 표준을 거치며 여러 차례 개정되었고, 2002년에는 객체 지향 기능을 도입했다. 현재도 금융 및 행정 서비스 등 상업용 계산 기술 분야에서 널리 사용되고 있으며, 2023년에는 비동기 메시징, 트랜잭션 처리 등 새로운 기능이 추가된 COBOL-2023 표준이 발표되었다. 코볼은 영어와 유사한 문법을 사용하며, 고정 포맷과 자유 포맷을 지원한다.

더 읽어볼만한 페이지

  • 코볼 - 2000년 문제
    2000년 문제는 과거 컴퓨터 시스템의 연도 표기 방식 때문에 2000년을 1900년으로 오인할 수 있는 잠재적 문제였으나, 전 세계적인 노력으로 큰 혼란 없이 해결되었고 정보 시스템 엔지니어들의 노력과 위기 관리의 중요성을 보여주었다.
  • 코볼 - 그레이스 호퍼
    그레이스 호퍼는 미국의 컴퓨터 과학자이자 해군 제독으로, 세계 최초의 컴파일러인 A-0을 개발하고 COBOL 개발에 기여하며 컴퓨터 시스템 표준화에 크게 기여했다.
  • 닷넷 프로그래밍 언어 - 파워셸
    파워셸은 마이크로소프트에서 개발한 작업 자동화 솔루션으로, 명령줄 셸과 스크립트 언어의 기능을 결합하여 윈도우 시스템 관리를 위해 설계되었으며, .NET 프레임워크 기반의 객체 지향적 특징을 갖고 다양한 플랫폼에서 자동화 스크립트 작성 및 실행, 시스템 구성 관리 등에 활용된다.
  • 닷넷 프로그래밍 언어 - C 샤프
    C#은 마이크로소프트에서 개발한 멀티 패러다임 프로그래밍 언어로, .NET Framework 개발 과정에서 안데르스 하일스베르그 팀에 의해 개발되었고, C++를 기반으로 객체 지향 프로그래밍의 특징을 강조하며 .NET 플랫폼을 지원한다.
코볼 - [IT 관련 정보]에 관한 문서
개요
이름COBOL (Common Business Oriented Language)
종류프로그래밍 언어
패러다임절차적 프로그래밍, 명령형 프로그래밍, 객체 지향 프로그래밍, 제네릭 프로그래밍
디자인 시기1959년
설계자, , , , , , 그레이스 호퍼 (간접적 영향)
개발자CODASYL, ANSI, ISO/IEC
최신 버전 출시일2023년
최신 버전ISO/IEC 1989:2023
타이핑약한 타이핑, 정적 타이핑
구현체,
파일 확장자.cbl, .cob, .cpy
언어적 영향
영향을 받은 언어 (초기)AIMACO, COMTRAN, FACT, FLOW-MATIC
영향을 받은 언어 (COBOL 2002)C++, Eiffel, Smalltalk
영향을 준 언어CobolScript, EGL, PL/I, PL/B
방언

2. 역사

1950년대 사무 처리 언어는 개발 회사마다 달랐다. 이러한 통일의 필요성을 인식한 미국 국방부는 사무 처리용 공통 언어 개발을 제안했고, CODASYL(Conference on Data Systems Languages, 데이터 시스템즈 언어 협의회)이 설립되었다. 1959년 CODASYL에 의해 개발된 공통 사무 처리용 언어가 COBOL이다.

1960년 1월 CODASYL 집행 위원회는 최초의 명세서를 승인했고, 미국 정부 인쇄국으로 보내졌다. 이 최초의 명세서는 1960년 4월에 발행되었으며, 통칭 COBOL-60이라고 불린다.[98][99] COBOL 개발로 인해 미국 정부의 사무 처리 시스템은 모두 COBOL만으로 납품되게 되었고, 이는 COBOL이 사무 처리용 언어로서 전 세계적으로 보급되는 계기가 되었다.

COBOL은 사양이 오래된 언어이지만, 언어 규격은 확장이 계속되어 2002년 판 이후에는 객체 지향에도 대응하여 부품성을 향상시켰다.

가트너 발 정보에 따르면, COBOL은 전체 프로그램 약 3,100억 행 중 약 65%인 약 2,000억 행이며, 매년 약 50억 행이 증가하고 있다.[94][95][96] 또한, 세계 상용 데이터의 약 75%, 상용 트랜잭션의 80% 이상(구글 검색의 200배 이상)이다.

일본 국내에서는, 2016-2021년의 소프트웨어 개발 데이터 1,476건을 정리한 IPA의 보고서에 따르면, 1위 Java (42.4%)에 이어 COBOL은 16.3%로 2위[97]이다.

2. 1. 배경

1950년대 말, 컴퓨터 사용자와 제조업체들은 프로그래밍 비용 증가에 대해 우려하기 시작했다. 1959년 조사에 따르면, 모든 데이터 처리 시설에서 프로그래밍 비용은 평균 80만달러였으며, 새로운 하드웨어에서 실행하기 위해 프로그램을 변환하는 데 60만달러가 소요될 것으로 나타났다. 새로운 프로그래밍 언어가 급증하던 시기에, 동일한 조사는 공통적인 비즈니스 지향 언어를 사용하면 변환 비용이 훨씬 저렴하고 빨라질 것이라고 제안했다.[122]

caption
그레이스 호퍼. COBOL의 선구자격인 FLOW-MATIC의 발명가.


1959년 4월 8일, 벌로스 코퍼레이션(Burroughs Corporation)의 컴퓨터 과학자 메리 K. 호우즈(Mary K. Hawes)는 공통 비즈니스 언어에 대한 공식 회의를 조직하기 위해 펜실베이니아 대학교(University of Pennsylvania)에서 학계, 컴퓨터 사용자 및 제조업체의 대표자 회의를 소집했다.[12] 대표자로는 그레이스 호퍼(Grace Hopper) (FLOW-MATIC의 발명가), 진 샘메트(Jean Sammet), 사울 건(Saul Gorn)이 포함되었다.[122][123]

4월 회의에서 그룹은 미국 국방부(Department of Defense, DoD)에 공통 비즈니스 언어를 만들려는 노력을 후원해 달라고 요청했다. 대표단은 국방부의 데이터 시스템 연구 담당 이사인 찰스 A. 필립스(Charles A. Phillips)에게 깊은 인상을 주었는데,[13] 그는 그들이 국방부의 문제를 "철저히 이해"한다고 생각했다. 국방부는 225대의 컴퓨터를 운영하고 있었고, 175대를 추가로 주문했으며, 해당 컴퓨터에서 실행되는 프로그램을 구현하는 데 2억달러 이상을 지출했다. 이식 가능한 프로그램은 시간을 절약하고, 비용을 절감하며, 현대화를 용이하게 할 것이다.[122]

찰스 필립스는 회의를 후원하기로 동의하고, 의제 초안을 작성하는 임무를 대표단에 맡겼다.[122]

2. 2. 개발 과정 (CODASYL)

1959년 5월 28일과 29일, 펜타곤에서 사무용 공통 프로그래밍 언어 개발을 논의하는 회의가 열렸다. 이 회의는 취리히 알골 58 회의가 열린 지 정확히 1년 후에 개최되었으며, 41명이 참석했고 찰스 A. 필립스가 의장을 맡았다.[122] 이 회의에서는 서로 다른 컴퓨터에서 동일한 데이터 처리 프로그램을 실행할 수 있는지에 대한 미국 국방부의 우려가 논의되었다. 당시 주류 언어였던 포트란은 그러한 프로그램을 작성하는 데 필요한 기능이 부족했다.

참석자들은 은행, 보험, 공과금, 재고 관리 등 다양한 환경에서 작동할 수 있는 언어에 대해 논의했다. 이들은 더 많은 사람들이 프로그래밍을 할 수 있어야 하며, 새로운 언어가 당시 기술의 제약에 얽매이지 않아야 한다는 데 동의했다. 또한, 언어가 최대한 영어를 사용하고, 변경 가능하며, 기계와 독립적이고, 사용하기 쉬워야 한다는 데 다수가 동의했다.

이 회의 결과, 운영 위원회와 단기, 중기, 장기 위원회가 구성되었다. 단기 위원회는 9월까지 3개월 동안 임시 언어 사양을 만들고, 다른 위원회들이 이를 개선하는 임무를 맡았다. 그러나 단기 위원회의 공식적인 임무는 기존 프로그래밍 언어의 장단점을 식별하는 것이었고, 새로운 언어를 만들도록 명시적으로 지시받지는 않았다.

단기 위원회의 위원 중 한 명인 베티 홀버튼은 3개월이라는 기한이 "지나치게 낙관적"이라고 표현하며, 이 언어가 임시방편이 될지에 대해 의문을 제기했다.

운영 위원회는 6월 4일에 회의를 열고, 협의회의 이름을 CODASYL(Committee on Data Systems Languages)로 정하고 집행 위원회를 설립하기로 결정했다.

단기 위원회는 6개 컴퓨터 제조업체와 3개 정부 기관으로 구성되었다. 6개 제조업체는 버로스, IBM, 미니애폴리스-하니웰(하니웰 연구소), RCA, 스페리 랜드, 실베이니아 일렉트릭 프로덕츠였다. 3개 정부 기관은 미국 공군, 해군의 데이비드 테일러 모델 베이슨, 국립표준국(현재의 미국 국립표준기술연구소)이었다. 위원회 의장은 미국 국립표준국의 조지프 웨그스타인이었다. 이들은 데이터 설명, 문(文), 기존 응용 프로그램, 사용자 경험을 조사하는 작업을 시작했다.

단기 위원회는 주로 FLOW-MATIC, AIMACO, COMTRAN 프로그래밍 언어를 조사했다. 특히 FLOW-MATIC은 이미 구현되어 있었고, AIMACO가 FLOW-MATIC에서 약간의 변경만 가한 파생 언어였기 때문에 큰 영향을 미쳤다.[123] FLOW-MATIC의 개발자인 그레이스 호퍼는 위원회의 기술 고문 역할을 했다. FLOW-MATIC이 코볼에 기여한 주요 사항은 긴 변수 이름, 명령어를 위한 영어 단어, 데이터 기술 및 명령의 구분이었다.

밥 베머가 개발한 IBM의 COMTRAN은 그레이스 호퍼의 동료들이 만든 단기 위원회에서 FLOW-MATIC의 경쟁 언어로 간주되었다. 일부 기능은 코볼에 포함되지 않았는데, 이는 IBM이 설계 과정을 지배하는 것처럼 보이지 않도록 하기 위함이었다. 1981년에 진 사멧은 자신을 포함한 일부 위원들이 "강력한 반IBM 편견"을 가지고 있었다고 언급했다. 일례로, COMTRAN 설명서의 저자이자 중기 위원회 위원이었던 로이 골드핑거가 소위원회 회의에 참석하여 자신의 언어를 지원하고 대수식 이용을 장려하자, 그레이스 호퍼는 단기 위원회에 메모를 보내 스페리 랜드가 영어를 기반으로 하는 언어를 만들려는 노력을 재차 강조했다. 1980년에 그레이스 호퍼는 코볼 60이 95% FLOW-MATIC으로 구성되었으며, COMTRAN은 매우 적은 부분에서 영향을 주었다고 언급했다.[124] 코볼에 포함된 COMTRAN의 기능에는 수식, PICTURE 절, GO TO의 필요성을 제거하는 개선된 IF 문, 더 강력한 파일 관리 시스템이 있었다.

2. 3. 초기 버전 (COBOL-60 ~ COBOL-65)

1960년 1월, CODASYL 집행 위원회는 최초의 코볼 명세서를 승인했고, 이는 미국 정부 인쇄국으로 보내졌다. 이 명세서는 1960년 4월에 "COBOL-60"이라는 이름으로 발행되었다.[98][99] 이 언어는 효율적이고 이식 가능한 프로그램을 쉽게 작성하고, 사용자가 최소한의 노력과 비용으로 새로운 시스템으로 이전할 수 있도록 하며, 미숙한 프로그래머도 적절히 사용할 수 있도록 하는 것을 목표로 했다.

''COBOL 60''에서는 많은 논리적 결함이 발견되었고, 찰스 카츠는 이를 모호하게 해석할 수 있다고 경고했다. 1963년 3월까지 코볼의 구문은 ALGOL과 마찬가지로 정의할 수 있게 되었지만, 의미론적 모호성은 여전히 남아있다고 보고되었다.[131]

초기 코볼 컴파일러는 원시적이고 속도가 느렸다. 1962년 미국 해군 평가에 따르면 컴파일 속도는 분당 3~11개 문장이었다. 1964년 중반까지 분당 11~1000개 문장으로 증가했다. 메모리 증가가 속도를 획기적으로 높였고, 문장당 비용은 0.23USD에서 18.91USD 사이로 크게 변동했다.[30]

1962년 말, IBM은 코볼을 주요 개발 언어로 사용할 것이며 COMTRAN의 개발을 중단할 것이라고 발표했다.[30]

코볼 사양은 발표 후 5년 동안 세 번 개정되었다. COBOL-60은 1961년에 COBOL-61로 대체되었다. 그 후 1963년 정렬 및 보고서 작성기 기능을 도입한 COBOL-61 Extended 사양으로 대체되었다.[30] 1965년, COBOL Edition 1965는 대용량 저장 장치 파일 및 테이블 처리를 위한 기능을 도입했다.[31]

COBOL 언어 연표
연도비공식 명칭
1960COBOL-60
1961COBOL-61
1963COBOL-61 확장
1965COBOL-65


2. 4. 표준화 (COBOL-68 ~ COBOL-85)

버전 간 비호환성 문제를 해결하기 위해 코볼 표준화 작업이 시작되었다. 1962년 말, 국제 표준화 기구(ISO)와 미국 표준 협회(ANSI)는 표준 제정 그룹을 설립했다. 1968년 8월, ANSI는 "USA Standard COBOL X3.23"을 발표했는데, 이는 이후 버전들의 기반이 되었다. 이 버전은 ANS(American National Standard) 코볼로 알려졌으며 1972년에 ISO에 채택되었다.[132] 1970년, 코볼은 전 세계에서 가장 널리 쓰이는 프로그래밍 언어가 되었다.

ANSI 위원회와 독립적으로 CODASYL 프로그래밍 언어 위원회는 언어 개선에 착수했다. 이들은 1968년, 1969년, 1970년, 1973년에 새로운 버전들을 발표했으며, 여기에는 새로운 프로그램 간 통신, 디버깅, 파일 병합 기능, 개선된 문자열 관리, 라이브러리 포함 기능과 같은 변경 사항이 포함되었다. CODASYL이 ANSI 위원회와 독립적이었으나, ANSI는 《CODASYL Journal of Development》를 사용하여 구현을 보증하는데 충분히 대중적인 기능들을 식별하게 하였다. 프로그래밍 언어 위원회는 또한 ECMA와 일본 코볼 표준 위원회와도 연계하였다.

그러나 프로그래밍 언어 위원회는 잘 알려지지 않았다. 부사장이었던 William Rinehuls는 코볼 커뮤니티의 2/3가 위원회의 존재조차 모르고 있다고 불평하였다. 또, 무료로 이용이 가능한 변경 사항 제안, 회의록과 같은 공용 문서를 만들 자금이 부족할 정도로 빈약했다.[133]

1974년, ANSI는 (ANS) 코볼의 개정판을 출판하였으며, 여기에는 파일 조직, DELETE 문[134], 세그먼트 모듈과 같은 새로운 기능들이 포함되었다. NOTE 문, EXAMINE 문(INSPECT 문으로 대체), 구현자 정의 랜덤 액세스 모듈(새로운 순차 및 상대 입출력 모듈로 대체)과 같은 기능들이 제거되었다. 44개의 변경 사항으로 이루어져 있고 새로운 표준과 호환되지 않은 기존의 문들을 나열하였다.[135] 보고서 작성 기능은 혹평을 받아 코볼에서 물러났지만 표준이 출판되기 전에 복귀되었다.[136][137] 나중에 ISO는 1978년에 갱신된 표준을 채택하였다.[132]

1978년 7월, 코볼 74를 개정하는 작업이 시작되었다. 제안된 표준(일반적으로 코볼-80으로 알려져 있음)은 이전 것과는 상당히 달랐으므로 비호환성 및 변환 비용에 대한 걱정을 야기하였다. 1981년 1월, 트래블러스 인슈런스(Travelers Insurance)의 수석 부사장 조지프 T 브로피(Joseph T. Brophy)는 표준 위원회를 고소하겠다고 위협하였는데 그 까닭은 코볼-74와 상위 호환이 되지 않았기 때문이다. 브로피는 그들의 40,000,000줄이나 되는 코드의 변환을 "비생산적"이고 "프로그램 자원 중 완전한 쓰레기"라고 기술하였다.[138] 그 해의 나중에 DPMA(Data Processing Management Association)는 이것은 새로운 표준에 강하게 반하는 것이며, 엄두도 못 낼 정도로 높은 변환 비용과 기능 강화가 사용자에게 강제되었다고 언급하였다.[139][140]

공식적인 최초 검토 기간 동안 위원회는 2,200개의 응답을 받았으며 이 가운데 1,700개가 부정적인 형태의 편지들이었다.[141] 그 밖의 응답들은 코볼-80이 그들의 시스템에 설치할 수 있는지의 상세한 영향도 분석에 대한 것이었다. 변환 비용이 코드 한 줄에 적어도 50 센트가 들 것으로 예측되었다. 12개도 채 안 되는 응답에서는 제안된 표준을 선호한다는 의견이었다.[142]

1983년 DPMA는 새로운 표준에 대한 반대를 철회하고 대중이 걱정하는 사항들에 대한 위원회의 응답을 언급하였다. 같은 해에 미국 국립표준국의 연구에 따르면 제안된 표준은 문제점이 거의 없을 것으로 결론을 내렸다.[140][143] 한 해 더 지나 코볼-80 컴파일러가 코볼-74 프로그램들의 변환에 일부 문제가 있었던 DEC VAX 사용자들에게 공개되었다. 새로운 EVALUATE 문과 인라인 PERFORM이 단순해진 제어 흐름와 디버깅 덕분에 특히 잘 받아들여져 생산성이 향상되었다.[144]

1985년 말에 ANSI는 개정된 표준을 출판하였다. 60개의 기능들이 변경되거나 사용을 권장하지 않는 쪽으로 바뀌었고 다음과 같은 기능들이 포함되었다:[145]

  • 범위 종단자 (END-IF, END-PERFORM, END-READ 등)
  • 내재된 프로그램(nested programs)
  • CONTINUE 문 - no-operation 문
  • EVALUATE 문 - switch 문
  • INITIALIZE 문
  • 인라인 PERFORM 루프 - 이전에 반복체는 별도의 프로시저에 정의하여야 했음
  • 참조 수정 - 부분열(substring) 접근 허용
  • 입출력 상태 코드


이 표준은 같은 해에 ISO에 채택되었다.[132] 두 개의 개정안이 1989년(내장 함수 도입)과 1993년(기타 수정 사항 제공)에 공개되었다. ISO는 표준의 주 소유권과 개발을 최종적으로 취득하기 전에 1991년과 1994년에 각각 개정안들을 채택하였다.[132]

2. 5. 객체 지향 COBOL (COBOL-2002 ~ 현재)

1990년대 초, COBOL에 객체 지향 기능을 추가하는 작업이 시작되었다. 객체 지향 기능은 C++와 Smalltalk에서 가져왔다.[47][48] 2002년, COBOL-2002 표준이 승인 및 발표되었으며, 여기에는 객체 지향 프로그래밍, 사용자 정의 함수, 사용자 지정 자료형 등의 기능이 포함되었다.[49]

클래스와 인터페이스는 2002년부터 COBOL에 도입되었다. 클래스는 클래스 메서드와 변수를 포함하는 팩토리 객체와 인스턴스 메서드와 변수를 포함하는 인스턴스 객체를 갖는다. 상속과 인터페이스는 다형성을 제공한다. 제네릭 프로그래밍 지원은 매개변수화된 클래스를 통해 제공되며, 이는 모든 클래스 또는 인터페이스를 사용하도록 인스턴스화될 수 있다. 객체는 특정 유형으로 제한될 수 있는 참조로 저장된다. 메서드를 호출하는 두 가지 방법이 있다: `INVOKE` 구문( `CALL`과 유사하게 작동)과 인라인 메서드 호출(함수를 사용하는 것과 유사)이다.

```cobolfree

  • > 이것들은 동일하다.

INVOKE my-class "foo" RETURNING var

MOVE my-class::"foo" TO var *> 인라인 메서드 호출

```

COBOL은 메서드를 숨기는 방법을 제공하지 않는다. 그러나 클래스 데이터는 외부 코드가 액세스할 수 없도록 `PROPERTY` 절 없이 선언하여 숨길 수 있다.[52] 메서드 오버로딩은 COBOL 2014에 추가되었다.

2014년, COBOL-2014 표준이 발표되었으며, 여기에는 메소드 오버로딩, 동적 캐퍼시티 테이블 등의 기능이 추가되었다. 2023년, COBOL-2023 표준은 비동기 메시징, 트랜잭션 처리, XOR 논리 연산자 등의 기능을 추가했다.

3. 언어적 특징

COBOL의 언어적 특징은 다음과 같다.

COBOL 문법은 영어 표현과 유사하다. 예를 들어, 숫자형 변수 W-NO에 숫자 100을 대입하는 경우, `MOVE 100 TO W-NO.` 또는 `COMPUTE W-NO = 100.`와 같이 표현한다. 이러한 자연어와 유사한 문장 형태는 가독성이 뛰어나다는 평가를 받지만, 장황함으로 인해 부정적으로 간주되기도 한다.

COBOL 소스 프로그램은 일반적으로 컬럼 고정 형식으로 작성되었다.


  • 1~6 컬럼: 일련 번호
  • 7 컬럼: 표식 영역 (주석 행 등을 표시)
  • 8~11 컬럼: A 영역
  • 12~72 컬럼: B 영역


최근의 COBOL 컴파일러는 자유 형식을 지원하여 행의 길이나 일련 번호에 제약 없이 코드를 작성할 수 있다.

1990년대 초, COBOL에 객체 지향 기능이 추가되기 시작했다. 이 기능은 C++와 Smalltalk에서 가져왔으며, 2002년에 최종 승인된 ISO 표준이 발표되었다.[49] 후지쯔, 마이크로 포커스 등은 .NET Framework를 대상으로 하는 객체 지향 COBOL 컴파일러를 도입했다.

COBOL-85에 포함되지 못한 새로운 기능들은 다음과 같다.[51]

  • 자유 형식 코드
  • 사용자 정의 함수
  • 재귀
  • 로케일 기반 처리
  • 유니코드와 같은 확장 문자 세트 지원
  • 부동 소수점 및 이진 데이터 유형
  • 이식 가능한 산술 결과
  • 비트 및 부울 데이터 유형
  • 포인터 및 스토리지 확보 및 해제 구문
  • .NET 및 Java 등과의 상호 운용성 향상

3. 1. 문법

COBOL은 영어와 같은 문법을 사용하여 프로그램 안의 거의 모든 것을 기술한다. 300개 이상의 예약어가 있으며[157], 일부 예약어는 대체 가능하고 단복수를 표현하는 단어도 영어 구문처럼 바꾸어 사용할 수 있다. 예를 들어, `IN`과 `OF` 키워드는 서로 바꿔 사용할 수 있으며, `IS`와 `ARE`, `VALUE`와 `VALUES`도 마찬가지이다.

어휘 항목은 워드, 리터럴, 픽처(PICTURE) 문자, 구분자로 구성된다. 워드는 예약어와 사용자 정의 식별자를 포함하며, 최대 31자 길이로 문자, 숫자, 하이픈(-), 언더바(_)를 포함할 수 있다. 리터럴은 숫자(예: 12)와 문자(예: 'Hello!')를 포함한다.[151] 구분자는 공백 문자와 콤마, 세미콜론을 포함하고 그 뒤에 공백이 온다.[151]

COBOL 프로그램은 다음의 네 가지 구역(DIVISION)으로 나뉜다.

  • IDENTIFICATION DIVISION (식별부): 소스 요소의 이름과 종류를 정의하며, 클래스와 인터페이스를 지정한다.
  • ENVIRONMENT DIVISION (환경부): 실행 시스템에 의존하는 프로그램 기능(예: 파일, 문자 집합)을 정의한다.
  • DATA DIVISION (데이터부): 변수매개변수를 선언한다.
  • PROCEDURE DIVISION (절차부): 프로그램의 을 포함한다.


각 구역은 섹션으로, 섹션은 여러 문단으로 다시 나뉜다.

예를 들어, 조건을 "x IS GREATER THAN y"로 표현할 수 있고, 더 간결하게는 "x GREATER y"나 "x > y"로 표현할 수 있다. 더 복잡한 조건은 반복되는 조건과 변수를 제거하여 축약할 수 있다. 예를 들어, "1=a > b AND a > c OR a = d"는 "1=a > b AND c OR = d"로 줄일 수 있다.

3. 2. 코드 포맷

코볼은 고정 포맷과 자유 포맷 두 가지 방식으로 작성할 수 있다. 고정 포맷은 각 영역이 특정 컬럼에 맞춰 정렬되어야 한다. 코볼 2002 이전의 고정 포맷은 다음과 같다.

이름열(들)사용
시퀀스 번호 영역1–6원래 카드/줄 번호에 사용되었으며 컴파일러에서 무시됨
표시자 영역7다음 문자가 허용됨:
영역 A8–11DIVISION, SECTION 및 프로시저 헤더, 01 및 77 레벨 번호, 파일/보고서 기술자가 포함됨
영역 B12–72영역 A에서 허용되지 않는 기타 코드
프로그램 이름 영역73–프로그램 또는 카드가 속한 시퀀스를 식별하는 데 사용됨



코볼 2002에서는 영역 A와 B가 병합되어 프로그램 텍스트 영역을 형성했으며, 이제 구현자가 정의한 열에서 끝난다.[150]

코볼 2002는 또한 자유 형식 코드를 도입했다. 자유 형식 코드는 파일의 모든 열에 배치할 수 있다. 주석은 *>를 사용하여 지정하며, 어디에나 배치할 수 있고 고정 형식 소스 코드에서도 사용할 수 있다. 연속 라인이 없고 >>PAGE 지시어가 / 표시자를 대체한다.[150]

3. 3. 데이터 유형

코볼은 영문자, 영숫자, 숫자, 불린, 인덱스, 내셔널, 오브젝트, 포인터 등의 자료형을 제공한다.[146][147][148] 자료형 안전은 가변적이며, 숫자 데이터는 다양한 표현과 크기 사이에서 자동으로 변환된다.[151]

표준 코볼은 다음과 같은 자료형을 제공한다.

자료형선언 예시참고
영문자문자와 공백만 포함
영숫자어떠한 문자도 포함
불린0과 1이라는 이진 숫자 형태로 저장된 데이터
인덱스테이블 요소를 참조하는데 사용
내셔널영숫자와 비슷하지만 확장 문자 집합을 이용 (예: UTF-8)
숫자숫자만 포함
오브젝트오브젝트나 NULL을 참조
포인터



자료형 안전은 코볼 안에서 변칙적이다. 수치 데이터는 각기 다른 표현들과 크기들로 자동 변환되며, 영숫자 데이터는 숫자와 그룹 데이터를 포함하여 문자열로 저장될 수 있는 어떠한 데이터 항목에라도 올 수 있다.[151] 반면에 오브젝트 참조들과 포인터들은 동일한 종류의 항목들로부터만 할당을 받을 수 있으며, 값들은 그 종류에 제한을 받는다.

3. 4. 주요 기능

보고서 작성기(Report Writer)는 보고서 레이아웃과 데이터만 지정하면 페이지 나누기, 데이터 형식 지정, 머리말/꼬리말 등을 자동으로 처리하는 선언형 기능이다.[146] 프로그래머는 이 기능을 통해 복잡한 처리 과정을 직접 코딩하지 않아도 된다.[147][148]

PROCEDURE DIVISION의 섹션과 문단은 레이블과 함수로 사용될 수 있으며, `PERFORM` 문을 사용하여 호출한다. COBOL 2014에는 47개의 문(동사)이 있으며, 제어 흐름, 입출력, 데이터 조작, 보고서 작성기 등으로 분류된다.[150]

원래 COBOL 사양은 `ALTER` 문을 지원했지만, COBOL 1985 표준에서는 사용하지 않을 것을 권고했고 2002년에 삭제되었다.[151]

4. 대한민국에서의 COBOL

대한민국에서 COBOL은 1960년대 후반 정부와 기업들의 전산화 추진과 함께 도입되었다. 1970년대 경제기획원(현 기획재정부) 전자계산소 설치와 함께 정부 주요 전산 언어로 자리 잡았으며, 1980년대에는 금융, 보험, 제조 등 다양한 산업 분야로 확산되며 COBOL 프로그래머 수요가 급증했다.[94][95][96]

2000년대 이후 Java, C++ 등 새로운 프로그래밍 언어의 등장으로 코볼의 위상은 상대적으로 약화되었지만, 여전히 많은 기업과 정부 기관에서 핵심 시스템을 운영하는 데 사용되고 있다. 특히 금융권에서는 코볼 기반 시스템이 높은 안정성과 신뢰성을 바탕으로 대규모 거래를 처리하고 있다.[61]

COBOL 프로그래머의 고령화와 은퇴는 기술 공백 문제를 야기하고 있다. 이에 대한민국 정부와 기업들은 COBOL 시스템의 안정적인 운영과 점진적인 현대화를 위해 노력하고 있으며, COBOL 기술자 양성과 COBOL 생태계 유지를 위한 다양한 방안을 모색하고 있다.

4. 1. 도입과 확산

1960년대 후반, 한국 정부와 기업들이 전산화를 추진하면서 COBOL이 도입되었다. 1970년대, 경제기획원(현 기획재정부)의 전자계산소 설치와 함께 COBOL은 대한민국 정부의 주요 전산 언어로 자리 잡았다. 1980년대, 금융, 보험, 제조 등 다양한 산업 분야에서 COBOL 기반 시스템이 구축되면서 COBOL 프로그래머에 대한 수요가 급증했다.[94][95][96]

4. 2. 현재 상황

Java, C++ 등 새로운 프로그래밍 언어의 등장으로 2000년대 이후 코볼의 위상은 상대적으로 약화되었지만, 여전히 많은 기업과 정부 기관에서 핵심 시스템을 운영하는 데 사용되고 있다. 특히 금융권에서는 코볼 기반 시스템이 높은 안정성과 신뢰성을 바탕으로 대규모 거래를 처리하고 있다.[61] 2020년 코로나19 범유행 상황에서, 일부 미국 주 정부 기관의 노후화된 코볼 시스템이 실업 급여 처리 지연 등의 문제를 야기하면서 코볼 기술자에 대한 수요가 일시적으로 증가하기도 했다.[63]

2016년 하원 증언에 따르면, 많은 연방 기관에서 여전히 코볼을 사용하고 있다.[60] 로이터(Reuters)는 2017년에 은행 시스템의 43%가 여전히 코볼을 사용하고 있으며 2,200억 줄 이상의 코볼 코드가 사용되고 있다고 보도했다.[61]

코볼 프로그래머 수가 은퇴로 인해 빠르게 감소하면서 2019년까지 대량의 트랜잭션 처리를 위해 여전히 메인프레임 시스템을 사용하는 비즈니스 및 정부 기관에서 임박한 기술 격차가 발생했다. 새로운 언어로 시스템을 다시 작성하는 노력은 비용이 많이 들고 문제가 있는 것으로 입증되었으며, 코드 유지 관리 아웃소싱도 마찬가지였다. 따라서 더 많은 사람들에게 코볼을 교육하자는 제안이 옹호되고 있다.[62]

COVID-19 범유행 기간 동안 실업이 급증하면서, 여러 미국 주에서는 실업 수당 관리에 사용되는 레거시 시스템을 지원할 숙련된 코볼 프로그래머의 부족을 보고했다. 이러한 시스템 중 상당수는 팬데믹 이전에 보다 현대적인 프로그래밍 언어로 전환하는 과정에 있었지만, 그 과정은 중단되었다.[63] 마찬가지로, 미국 국세청은 코로나19 구호 기금(Coronavirus Aid, Relief, and Economic Security Act)에 의해 의무화된 수천만 건의 지급을 분배하기 위해 코볼 기반의 개인 마스터 파일을 서둘러 패치했다.[64]

IPA의 보고서에 따르면, 일본 국내에서 2016-2021년의 소프트웨어 개발 데이터 1,476건 중 1위는 Java (42.4%)이며, 코볼은 16.3%로 2위를 차지했다.[97]

4. 3. 인력 문제와 미래 전망

가트너의 정보에 따르면, 전 세계 1만 개 이상의 사이트에 3만 8천 개의 레거시 시스템(메인 프레임)이 있으며, 이 중 COBOL로 작성된 프로그램은 약 2,000억 행으로 전체의 약 65%를 차지한다. 이는 매년 약 50억 행씩 증가하는 추세이다.[94][95][96] 이는 FORTRAN과 어셈블러를 합친 것보다 훨씬 많은 양이다. 또한, COBOL은 전 세계 상용 데이터의 약 75%, 상용 트랜잭션의 80% 이상(구글 검색의 200배 이상)을 처리하고 있다. COBOL 개발자는 85만 명 이상이지만, 개발자 수 감소 속도가 증가 속도보다 훨씬 빠르다.

IPA의 보고서에 따르면, 일본 내에서 2016년부터 2021년까지의 소프트웨어 개발 데이터 1,476건 중 COBOL이 차지하는 비중은 16.3%로, Java에 이어 2위를 기록했다.[97]

이처럼 COBOL은 탄생한 지 60년이 넘었지만, 여전히 주요 프로그래밍 언어 중 하나로 사용되고 있으며, 이는 다른 초기 프로그래밍 언어들과 비교했을 때 주목할 만한 점이다.

COBOL 프로그래머의 고령화와 은퇴는 기술 공백 문제를 야기하고 있다. 이에 따라 일부 대학과 교육 기관에서 COBOL 교육 과정을 개설하여 젊은 인력을 양성하고 있지만, 인력 부족 문제는 여전히 해결되지 않고 있다.

COBOL 시스템의 현대화, 다른 프로그래밍 언어와의 통합, 클라우드 환경으로의 이전 등은 COBOL이 앞으로 해결해야 할 과제이다. 대한민국 정부와 기업들은 COBOL 시스템의 안정적인 운영과 점진적인 현대화를 위해 노력하고 있으며, COBOL 기술자 양성과 COBOL 생태계 유지를 위한 다양한 방안을 모색하고 있다.

5. 비판과 옹호

코볼은 순차, 색인, 상대 파일 포맷을 지원한다. 순차 파일은 레코드들이 연속적으로 저장되며 순차적으로 접근해야 한다. 색인 파일은 하나 이상의 색인을 가지며 임의 접근을 허용하고 각 레코드는 고유 키를 가져야 한다. 상대 파일은 색인 파일과 유사하지만 대안 키가 없고, 키는 레코드의 서열적인 위치를 나타낸다.[158]

코볼은 또한 줄 단위 순차 방식(line sequential organization)이라는 공통 비표준 확장을 지원하며, 이는 텍스트 파일 처리에 사용된다. 이 방식에서 레코드는 새 줄 단위로 끝나고 길이는 다양하다.[158]

코볼은 다음과 같은 비판과 옹호를 받는다.


  • 구조 결여: 1970년대 구조적 프로그래밍 확산과 함께 코볼의 비구조적인 코드는 비판받았다. 에츠허르 데이크스트라는 "COBOL을 이용하는 일은 마음을 무력하게 만든다"고 비판했다.[164] `GO TO` 문은 스파게티 코드의 원인으로 지적되었으며, `PERFORM` 문과 프로시저로 대체하려는 시도가 있었지만 프로그램 이해를 어렵게 만들기도 했다.[165]
  • 호환성 문제: 코볼은 이식성이 높은 언어를 목표로 했지만, 2001년까지 약 300개의 방언이 만들어졌다.[166] 1974년 표준은 다양한 지원 수준을 가진 모듈들로 구성되어 매우 많은 변형이 가능했다.[78] 코볼-85는 이전 버전과 완전히 호환되지 않아 논란이 있었고, 트래블러스 보험사의 CIO 조지프 T. 브로피는 재프로그래밍 비용 문제를 제기했다.[78]
  • 장황한 문법: 코볼 문법은 장황하다는 비판을 받지만, 지지자들은 자체 문서화를 통해 유지보수를 쉽게 한다고 주장한다. 코볼은 비기술 종사자도 읽을 수 있도록 영어와 비슷한 문법과 구조 요소를 사용했다.[167] 그러나 진 사멧은 전문 프로그래머를 위한 배려가 부족하고 장황한 문법이 오히려 불편함을 야기한다고 지적했다.[79]
  • 컴퓨터 과학 공동체와의 분리: 코볼 공동체는 컴퓨터 과학 공동체와 분리되어 있었고, 학술 컴퓨터 과학자들은 코볼 설계에 참여하지 않았다. 초기 컴퓨터 과학자들은 사무용 데이터 처리보다 다른 분야에 더 관심이 많았다.[168]
  • 설계 과정에 대한 우려: 설계 과정의 효과성에 대한 의문이 제기되었다. 하워드 브롬버그는 개발 과정에 통제가 거의 없었고 인력 부족과 재능 부족으로 어려움을 겪었다고 말했다.[85] 진 사멧과 제롬 가펀켈은 표준 개정 과정에서 객관적 증거 부족과 위원회 구성원 변화로 인해 변경 사항이 번복되는 경우가 많다고 지적했다.[85] 코볼 표준은 여러 차례 지연되었으며, COBOL-85는 5년, COBOL 2002는 5년, COBOL 2014는 6년 늦게 출시되었다.[170][146][148][171]

5. 1. 구조의 결여

1970년대 구조적 프로그래밍 패러다임이 확산되면서, COBOL의 비구조적인 코드는 비판받았다. 에츠허르 데이크스트라는 "COBOL을 이용하는 일은 마음을 무력하게 만든다"고 비판했다.[164]

`GO TO` 문은 스파게티 코드의 원인 중 하나였다. `GO TO` 문을 `PERFORM` 문과 프로시저로 대체하여 모듈식 프로그래밍을 장려했지만, 이로 인해 프로그램 이해가 더 어려워지기도 했다.[165]

5. 2. 호환성 문제

코볼은 이식성이 높은, 공통으로 쓰이는 언어를 목표로 개발되었지만, 2001년까지 대략 300개의 방언이 만들어졌다.[166] 방언이 만들어진 원인 중 하나는 표준 자체에 있었다. 1974년 표준은 하나의 필수 코어와 11개의 기능 모듈로 구성되었고, 각 모듈은 2~3가지의 지원 수준을 포함하여 총 104,976가지의 변형이 가능했다.[78]

코볼-85는 이전 버전들과 완전히 호환되지 않아 개발 과정에서 논란이 있었다. 트래블러스 보험사의 CIO인 조지프 T. 브로피는 새로운 표준 구현에 드는 막대한 재프로그래밍 비용을 코볼 사용자들에게 알리는 노력을 주도했다. 그 결과, ANSI 코볼 위원회는 대중으로부터 2,200통이 넘는 편지를 받았으며, 대부분 부정적인 내용이어서 위원회는 변경을 해야 했다. 반면에 코볼-85로의 전환은 향후 몇 년 동안 생산성을 높여 전환 비용을 정당화할 것으로 예상되었다.[78]

5. 3. 장황한 문법

코볼 문법은 장황하다는 비판을 자주 받아왔다. 지지자들은 코드를 자체 문서화하여 프로그램 유지보수를 쉽게 하기 위한 것이라고 주장한다. 코볼은 프로그래머들이 배우고 쓰기 쉽게 하기 위해 만들어졌지만, 관리자들과 같은 비기술 종사자들에게도 읽히는 것을 목표로 했다. 가독성에 대한 열망으로 인해 명사, 동사, 절, 문장, 섹션, 디비전과 같은 영어와 비슷한 문법과 구조 요소들을 이용하게 되었다.[167]

단기 위원회 구성원이었던 진 사멧은 "전문 프로그래머를 위한 시도는 거의 이루어지지 않았으며, 주된 관심거리가 프로그래밍인 사람들은 코볼을 매우 언짢게 생각하는 경향이 있다."고 언급하며, 이를 코볼의 장황한 문법 때문인 것으로 보았다.[79]

변수 `age`의 값을 `years`만큼 증가시키는 코드를 예로 들어보자.

  • 일반적인 프로그래밍 언어:
  • `age = age + years;` (C 언어 등에서는 `age += years;`와 같이 줄여 쓸 수 있다)
  • COBOL:
  • `COMPUTE AGE = AGE + YEARS.`
  • `ADD YEARS TO AGE.` (영어로 "년수를 나이에 더하다")


이처럼 COBOL은 영어 문장과 유사한 형태로 작성할 수 있어, 프로그램 코드 자체가 기능을 설명하는 구조를 가진다.

하지만, 복잡한 수식이나 함수를 다루는 과학 기술 계산 분야에서는 이러한 자연어 지향적인 방식이 오히려 가독성을 떨어뜨릴 수 있다. 예를 들어, 이차 방정식 ''A'' ''X''2 + ''B'' ''X'' + ''C'' = 0 의 해를 구하는 경우, COBOL의 `COMPUTE` 문을 사용하면 다음과 같이 간결하게 표현할 수 있다.

:COMPUTE X = (- B + (B 2 - 4 * A * C) 0.5) / (2 * A).

그러나 수식을 최대한 사용하지 않는 방식으로 작성하면 다음과 같이 매우 길어진다.

:MULTIPLY B BY B GIVING B-SQUARED. (B를 B배하고, B-SQUARED에 대입)

:MULTIPLY 4 BY A GIVING FOUR-A. (A를 4배하고, FOUR-A에 대입)

:MULTIPLY FOUR-A BY C GIVING FOUR-A-C. (C를 FOUR-A배하고, FOUR-A-C에 대입)

:SUBTRACT FOUR-A-C FROM B-SQUARED GIVING D. (B-SQUARED에서 FOUR-A-C를 빼고, D에 대입)

:MOVE FUNCTION SQRT(D) TO ROOT-D. (D의 양의 제곱근을 ROOT-D에 대입)

:SUBTRACT B FROM ROOT-D GIVING NUMERATOR. (ROOT-D에서 B를 빼고, NUMERATOR에 대입)

:MULTIPLY 2 BY A GIVING TWO-A. (A를 2배하고, TWO-A에 대입)

:DIVIDE NUMERATOR BY TWO-A GIVING X. (NUMERATOR를 TWO-A로 나누고, X에 대입)

5. 4. 컴퓨터 과학 공동체와의 분리

COBOL 공동체는 컴퓨터 과학 공동체와 분리되어 있었다. 학술 컴퓨터 과학자들은 COBOL 설계에 참여하지 않았으며, 위원회 구성원은 상업 분야나 정부 출신이었다. 초기 컴퓨터 과학자들은 사무용 데이터 처리보다 수치 분석, 물리학, 시스템 프로그래밍 등에 더 관심이 많았다.[168]

5. 5. 설계 과정에 대한 우려

설계 과정의 효과성에 대한 의문이 제기되었다. 단기 위원회 구성원이었던 하워드 브롬버그는 개발 과정에 "통제가 거의 이루어지지 않았으며", "인력의 단절과 ... 재능 부족으로 어려움을 겪었다"고 말했다.[85] 진 사멧과 제롬 가펀켈은 표준의 한 개정판에서 도입된 변경 사항이 객관적인 증거뿐만 아니라 표준 위원회의 구성원 변화로 인해 다음 개정판에서 되돌려지는 경우가 많다고 언급했다.[85]

코볼 표준은 여러 차례 지연되었다. COBOL-85는 희망했던 날보다 5년 늦게 출시되었고,[170] COBOL 2002도 5년 늦었으며,[146] COBOL 2014는 6년 늦었다.[148][171] 지연을 방지하기 위해 표준 위원회는 다음 표준 리비전을 기다리지 않고 더 빨리 추가 기능을 더 빠르게 추가하는 선택적인 부록을 만드는 것을 허용하였다. 그러나 일부 위원회 구성원들은 구현체와 표준의 잦은 수정 간에 따르는 비호환성에 대해 걱정을 드러냈다.[172]

6. 다른 언어에 미친 영향

코볼의 자료 구조는 PL/I파스칼 등 후대에 나온 프로그래밍 언어들에 영향을 주었다. 레코드와 파일 구조는 이들 언어에 영향을 주었고, `REDEFINES` 절은 파스칼의 변종 레코드의 전신이었다. 명확한 파일 구조 정의는 데이터베이스 관리 시스템 개발보다 앞섰고, 수집된 데이터는 포트란의 배열보다 훨씬 더 앞선 것이었다.[173]

원시적인 수준으로 간주되긴 하지만[173] 코볼의 `COPY` 기능은 include 지시자의 개발에 영향을 미쳤다.[173]

이식성과 표준화에 초점을 둠에 따라 코볼로 작성된 프로그램들은 이식이 가능하였고, 언어가 다양한 하드웨어 플랫폼과 운영 체제에 안착할 수 있었다.[89] 게다가 잘 정의된 디비전 구조는 ENVIRONMENT DIVISION의 외부 참조 정의를 제한함으로써 특히 플랫폼 변경을 단순화하는 일에 기여하였다.[90]

7. 관련 인물

COBOL 개발에는 여러 인물이 기여했다. 미국 국방부의 찰스 A. 필립스는 CODASYL(데이터 시스템즈 언어 협의회) 설립을 후원하여 COBOL 개발의 배경을 마련했다.[98][99] 그레이스 호퍼는 "COBOL의 어머니"로 불리기도 하지만, 진 사멧은 호퍼가 COBOL의 창시자나 개발자는 아니었다고 주장한다. 진 사멧 본인은 COBOL의 주요 설계자 중 한 명이었다.[98][99]

7. 1. 그레이스 호퍼



"COBOL의 어머니"로 불리며, FLOW-MATIC 개발자이자 COBOL 개발에 참여한 기술 고문이었다.[98][99] 하지만 진 사멧은 호퍼가 "COBOL의 어머니, 창시자 또는 개발자가 아니었다"고 주장한다.

7. 2. 진 사멧

진 사멧(Jean E. Sammet)은 COBOL의 주요 설계자 중 한 명으로, 단기 위원회 구성원이었다.[98][99]

7. 3. 찰스 A. 필립스

미국 국방부 데이터 시스템 연구 스태프 총괄이었으며, 1959년 CODASYL(데이터 시스템즈 언어 협의회)에 의한 사무 처리용 공통 언어인 COBOL 개발 회의를 후원했다.[98][99]

참조

[1] 서적 Technical Standard, COBOL Language https://pubs.opengro[...] X/Open Company Ltd., U.K. 1991-12
[2] 간행물 Cobol: Perception and Reality 1997-03
[3] 학회 COBOL Script: a business-oriented scripting language IEEE 2000-09
[4] 웹사이트 Introduction to EGL https://www.omg.org/[...] IBM Software Group 2007-05-07
[5] 학회 The early history and characteristics of PL/I Academic Press
[6] 웹사이트 What is PL/B - The Programming Language for Business? https://www.sysmaker[...] Infopro, Inc. 2022-04-22
[7] 간행물 Brain drain: Where Cobol systems go from here http://www.computerw[...] 2012-03-14
[8] 서적 The Computer Boys Take Over: Computers, Programmers, and the Politics of Technical Expertise https://books.google[...] MIT Press
[9] 웹사이트 A History of Computer Programming Languages http://cs.brown.edu/[...] 2018-03-12
[10] 웹사이트 Mainframe COBOL Programming https://www.mainfram[...]
[11] 잡지 Covid Accelerates Banks' Mainframe Migration to Cloud https://www.forbes.c[...]
[12] 간행물 Pioneering Women in Computer Science 2002-06-01
[13] 웹사이트 How COBOL Still Powers The Global Economy At 60 Years Old https://www.tpr.org/[...] 2019-05-24
[14] 간행물 Early Meetings of the Conference on Data Systems Languages
[15] 간행물 The Early History of COBOL
[16] 잡지 Captain Grace M. Hopper: the Mother of COBOL https://books.google[...] 1981-10-05
[17] 간행물 Grace Hopper, mother of Cobol, dies https://books.google[...] 1992-01-06
[18] 서적 Go To: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Maverick Scientists, and Iconoclasts—The Programmers Who Created the Software Revolution https://books.google[...] Basic Books
[19] 뉴스 Pioneering software engineer and Cobol co-designer https://www.irishtim[...]
[20] 간행물 The real creators of Cobol 2000-03
[21] 웹사이트 Oral History of Captain Grace Hopper http://archive.compu[...] Computer History Museum 1980-12
[22] 뉴스 Computer Pioneer Bob Bemer, 84 https://www.washingt[...] 2004-06-25
[23] 웹사이트 THE COBOL REPORT - Interview with Bob Bemer - the Father of COBOL http://www.bobbemer.[...]
[24] 웹사이트 THE COBOL REPORT - Interview with Bob Bemer - the Father of COBOL http://cobolreport.c[...]
[25] 서적 COBOL Tombstone http://www.computerh[...] Computer History Museum
[26] 간행물 The Story of the COBOL Tombstone http://ed-thelen.org[...] 1985-Summer
[27] 서적 Grace Hopper: Admiral of the Cyber Sea https://books.google[...] US Naval Institute Press 2012-11-10
[28] 문서
[29] 간행물 In defense of Cobol https://books.google[...] 1984-11-11
[30] 서적 Programming Languages: Design and Implementation Prentice Hall 1975
[31] 백과사전 Programming language standards http://dl.acm.org/ci[...] Wiley
[32] 간행물 Few Realise Wasted Resources of Local DP Schools https://books.google[...] 1972-08-02
[33] 서적 Programming in COBOL: A Course of Twelve Television Lectures https://books.google[...] Manchester University Press
[34] 보고서 Programming Language Standards—Who Needs Them? http://apps.dtic.mil[...] United States Department of the Navy 1977-05
[35] 간행물 'Spotty' Availability A Problem... https://books.google[...] 1975-07-23
[36] 학술지 Does Cobol's Report Writer Really Miss the Mark? https://books.google[...] 1975-06-18
[37] 학술지 User Threatens Suit Over Ansi Cobol-80 https://books.google[...] 1981-01-26
[38] 학술지 DPMA Takes Stand Against Cobol Draft https://books.google[...] 1981-10-26
[39] 학술지 Revised Cobol standard may be ready in late '85 https://books.google[...] 1985-09-16
[40] 학술지 Expert addresses Cobol 85 standard https://books.google[...] 1985-09-16
[41] 학술지 Responses to Cobol-80 Overwhelmingly Negative https://books.google[...] 1982-03-15
[42] 학술지 Study Sees Few Problems Switching to Cobol-8X https://books.google[...] 1983-04-25
[43] 학술지 DEC users get head start implementing Cobol-80 https://books.google[...] 1984-11-19
[44] 웹사이트 COBOL ANSI-85 Programming Reference Manual https://public.suppo[...] Unisys 2015-04
[45] 서적 COBOL Programming: Problems and Solutions https://books.google[...] McGraw-Hill Education 1989-06-01
[46] 웹사이트 Cobol remains old standby at agencies despite showing its age http://fcw.com/Artic[...] Public Sector Media Group 2009-07-09
[47] 웹사이트 COBOL '97: A Status Report http://collaboration[...] 1995-10
[48] 서적 Object-Oriented COBOL https://books.google[...] Cambridge University Press 1998-02
[49] 웹사이트 COBOL Standards http://www.cobolstan[...] Micro Focus
[50] 웹사이트 NetCOBOL for .Net http://www.netcobol.[...] GTSoftware 2013
[51] 학술지 A list of Codasyl Cobol features https://books.google[...] 1984-09-10
[52] 웹사이트 JTC1/SC22/WG4 – COBOL http://www.cobolstan[...] ISO 2010-06-30
[53] 웹사이트 Thoughts on the Future of COBOL Standardization http://www.cobolstan[...] 2008-02-27
[54] 웹사이트 J4: COBOL Standardization http://www.microfocu[...] Micro Focus 1998-12-02
[55] 학술지 Does COBOL Have a Future? http://proc.isecon.o[...]
[56] 웹사이트 Frequently Asked Questions (FAQ) About the Y2K Problem https://homepages.wm[...] 1998-07-12
[57] 학술지 Some strategic Y2K blessings https://ieeexplore.i[...] 2000
[58] 학술지 Cobol: Not Dead Yet https://www.computer[...] 2006-10-04
[59] 학술지 Cobol brain drain: Survey results http://www.computerw[...] 2012-03-14
[60] 웹사이트 Federal Agencies Need to Address Aging Legacy Systems https://www.gao.gov/[...] 2016-05-25
[61] 웹사이트 COBOL blues http://fingfx.thomso[...] Reuters
[62] 잡지 Closing the COBOL Programming Skills Gap https://ibmsystemsma[...] 2019-10-25
[63] 웹사이트 Wanted urgently: People who know a half century-old computer language so states can process unemployment claims https://www.cnn.com/[...] 2020-04-08
[64] 뉴스 Stimulus checks and other coronavirus relief hindered by dated technology and rocky government rollout https://www.washingt[...] 2020-04-17
[65] 웹사이트 Reserved Words Table http://documentation[...] Micro Focus
[66] 웹사이트 Introduction to COBOL https://users.cs.jmu[...] James Madison University
[67] 웹사이트 File Organizations http://supportline.m[...] Micro Focus 1998
[68] 서적 Sams Teach Yourself COBOL in 24 hours SAMS Publishing
[69] 학회자료 Identifying Procedural Structure in Cobol Programs http://pages.cs.wisc[...] 1999-09
[70] 학술지 Cobol minefield detection http://www.cs.vu.nl/[...] 2006-11
[71] 웹사이트 September 2013 https://web.archive.[...] 2014-01-05
[71] 웹사이트 The ALTER Statement http://documentation[...] Micro Focus 2014-01-05
[71] 웹사이트 ALTER Statement (Nucleus) https://web.archive.[...] Fujitsu 2014-01-05
[71] 웹사이트 ALTER Statement http://pic.dhe.ibm.c[...] IBM 2014-01-05
[72] 웹사이트 COBOL Compiler from MVT http://www.jaymosele[...] 2015-07-19
[73] 웹사이트 How do we tell truths that might hurt? https://web.archive.[...] University of Texas at Austin 1975-06-18
[74] 논문 In defense of teaching structured COBOL as computer science
[75] 서적 Beginning COBOL for Programmers https://books.google[...] Apress 2014-03-16
[76] 웹사이트 COBOL and Legacy Code as a Systemic Risk {{!}} naked capitalism http://www.nakedcapi[...] 2016-07-23
[77] 논문 Cracking the 500-language problem https://web.archive.[...] 2001-11-01
[78] 논문 Towards more portable COBOL 1979-04-01
[79] 웹사이트 COBOL http://catb.org/jarg[...] 2014-12-13
[80] 서적 An Introduction to Programming: A Structured Approach using PL/1 and PL/C Winthrop Publishers
[81] 웹사이트 COBOL Logic and Programming, third edition 1974 https://web.archive.[...] 2016-02-25
[82] 논문 An interview: Cobol defender https://books.google[...] 2014-06-08
[83] 서적 Programming Languages: Design and Implementation Englewood Cliffs, N.J. : Prentice Hall 1984
[84] 간행물 Academia needs more support to tackle the IT skills gap http://www.microfocu[...] Micro Focus 2014-08-04
[85] 논문 Summary of Changes in COBOL, 1960–1985 1985-10-01
[86] conference Data Base Facility for COBOL 80 http://www.computer.[...] AFIPS Press 2014-09-02
[87] 웹사이트 Resolutions from WG4 meeting 24 – June 26–28, 2003 Las Vegas, Nevada, USA https://web.archive.[...] 2014-06-29
[88] 논문 Cobol standard add-ons flayed https://books.google[...] 1986-07-14
[89] 웹사이트 Visual COBOL http://www-304.ibm.c[...] IBM 2014-02-05
[89] 웹사이트 IBM COBOL Compiler Family https://www.ibm.com/[...] IBM 2024-09-11
[89] 웹사이트 GnuCOBOL - GNU Project https://gnucobol.sou[...] 2024-09-11
[90] 웹사이트 Introduction to COBOL http://www.csis.ul.i[...]
[91] 웹사이트 Gartner Group Studies https://1997-2001.st[...] Year 2000 Program Management Office 2022-04-23
[92] 웹사이트 COBOL Fact-Check https://www.cobsolet[...] COBSOLETE 2022-04-23
[93] 간행물 What Will the Future Hold International Data Group 1995-12-15
[94] 문서 Around 80% of the world's actively used code is none other than COBOL http://www.uctcorp.c[...]
[95] 문서 20 Things You Might Not Know About COBOL (as the Language Turns 50) http://want2change.w[...]
[96] 문서 Platform Migration http://www.cobug.com[...]
[97] PDF ソフトウェア開発分析データ集2022 https://www.ipa.go.j[...] 情報処理推進機構
[98] 서적 History of programming languages I ACM
[99] 문서 社会を支えるCOBOL、50年の歩み - 誕生50周年、社会を支えつづけるCOBOL:ITpro https://xtech.nikkei[...]
[100] 문서 COBOL誕生から60年--これからも生き続ける理由 - ZDNet https://japan.zdnet.[...]
[101] 웹사이트 E. W. Dijkstra Archive: How do we tell truths that might hurt? (EWD498) http://www.cs.utexas[...] University of Texas at Austin 2013-01-14
[102] 문서 まだまだ現役:プログラミング言語のCOBOLが誕生50周年 - ITmedia https://www.itmedia.[...]
[103] 문서 COBOLコンソーシアム http://www.cobol.gr.[...]
[104] 문서 COBOL誕生50周年記念セミナー 社会を支える“ことば”。これまでも、そしてこれからも http://www.cobol.gr.[...]
[105] 문서 COBOLはクラウド時代も現役、09年は最も多くのコードが書かれた---英マイクロフォーカス CTO スチュアート・マギル氏 - ITpro https://xtech.nikkei[...]
[106] 웹사이트 情報処理技術者試験における出題範囲・シラバス等の変更内容の公表について(基本情報技術者試験、情報セキュリティマネジメント試験の通年試験化) https://www.jitec.ip[...]
[107] 웹사이트 COBOLコンソーシアム - COBOL 第5次規格 新機能紹介 ~TRIM組込関数~ https://www.cobol.gr[...]
[108] 웹사이트 第4次COBOL規格 COBOL2002のご紹介 http://www.cobol.gr.[...]
[109] 웹사이트 ISO/IEC 1989:2014 - Information technology -- Programming languages, their environments and system software interfaces -- Programming language COBOL https://www.iso.org/[...]
[110] 간행물 X JIS
[111] 웹사이트 日本産業標準調査会:データベース-廃止JIS規格リスト C6205 https://www.jisc.go.[...]
[112] 콘퍼런스 COBOL Script: a business-oriented scripting language IEEE 2000-09
[113] 콘퍼런스 The early history and characteristics of PL/I Academic Press
[114] 서적 The Power of Cobol BookSurge Publishing
[115] 웹인용 Cobol remains old standby at agencies despite showing its age http://fcw.com/Artic[...] Public Sector Media Group 2009-07-09
[116] 웹인용 Brain drain: Where Cobol systems go from here http://www.computerw[...] 2012-03-14
[117] 저널 Captain Grace M. Hopper: the Mother of COBOL http://books.google.[...] 1981-10-05
[118] 저널 Grace Hopper, mother of Cobol, dies http://books.google.[...] 1992-01-06
[119] 서적 Go To: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Maverick Scientists, and Iconoclasts--The Programmers Who Created the Software Revolution http://books.google.[...] Basic Books
[120] 서적 The Computer Boys Take Over: Computers, Programmers, and the Politics of Technical Expertise http://books.google.[...] MIT Press
[121] 웹인용 ISO/IEC 1989:2014 http://www.iso.org/i[...] ISO 2014-05-26
[122] 저널 Early Meetings of the Conference on Data Systems Languages
[123] 저널 The Early History of COBOL http://portal.acm.or[...] Association for Computing Machinery, Inc.
[124] 웹인용 Oral History of Captain Grace Hopper http://archive.compu[...] 컴퓨터 역사 박물관 1980-12
[125] 뉴스 Computer Pioneer Bob Bemer, 84 http://www.washingto[...] 2004-06-25
[126] 웹인용 Thoughts on the Past and Future http://www.bobbemer.[...]
[127] 웹인용 The Story of the COBOL Tombstone http://ed-thelen.org[...] The Computer Museum 1985-06
[128] 웹인용 COBOL Tombstone http://www.computerh[...] 컴퓨터 역사 박물관
[129] 서적 Grace Hopper: Admiral of the Cyber Sea http://books.google.[...] US Naval Institute Press 2012-11-10
[130] 문서 Compaq Computer Corporation: Compaq COBOL Reference Manual, Order Number: AA–Q2G0F–TK October 2000, Page xviii; Fujitsu Corporation: Net Cobol Language Reference, Version 15, January 2009; IBM Corporation: Enterprise COBOL for z/OS Language Reference, Version 4 Release 1, SC23-8528-00, December 2007
[131] 저널 In defense of Cobol https://books.google[...] 1984-11-11
[132] 서적 Programming language standards http://dl.acm.org/ci[...] Wiley
[133] 저널 Few Realise Wasted Resources of Local DP Schools https://books.google[...] 1972-08-02
[134] 서적 Programming in COBOL: A Course of Twelve Television Lectures http://books.google.[...] Manchester University Press
[135] 기술보고서 Programming Language Standards — Who Needs Them? http://www.dtic.mil/[...] 1977-05
[136] 저널 'Spotty' Availability A Problem... http://books.google.[...] 1975-07-23
[137] 저널 Does Cobol's Report Writer Really Miss the Mark? http://books.google.[...] 1975-06-18
[138] 저널 User Threatens Suit Over Ansi Cobol-80 http://books.google.[...] 1981-01-26
[139] 저널 DPMA Takes Stand Against Cobol Draft http://books.google.[...] 1981-10-26
[140] 저널 Revised Cobol standard may be ready in late '85 http://books.google.[...] 1985-09-16
[141] 저널 Expert addresses Cobol 85 standard http://books.google.[...] 1985-09-16
[142] 저널 Responses to Cobol-80 Overwhelmingly Negative http://books.google.[...] 1982-03-15
[143] 저널 Study Sees Few Problems Switching to Cobol-8X https://books.google[...] 1983-04-25
[144] 저널 DEC users get head start implementing Cobol-80 http://books.google.[...] 1984-11-19
[145] 서적 COBOL Programming: Problems and Solutions https://books.google[...] McGraw-Hill Education 1989-06-01
[146] 웹인용 COBOL '97: A Status Report http://collaboration[...] 1995-10-01
[147] 서적 Object-Oriented COBOL http://books.google.[...] Cambridge University Press 1998-02-01
[148] 웹인용 COBOL Standards http://www.cobolstan[...] Micro Focus 2014-09-02
[149] 웹인용 NetCOBOL for .Net http://www.netcobol.[...] GTSoftware
[150] 웹인용 A list of Codasyl Cobol features http://books.google.[...] 1984-09-10
[151] 웹인용 JTC1/SC22/WG4 - COBOL http://www.cobolstan[...] ISO 2010-06-30
[152] 웹인용 Thoughts on the Future of COBOL Standardization http://www.cobolstan[...] 2008-02-27
[153] 웹인용 J4: COBOL Standardization http://www.microfocu[...] Micro Focus 1998-12-02
[154] 저널 Does COBOL Have a Future? http://proc.isecon.o[...]
[155] 웹인용 Cobol: Not Dead Yet http://www.computerw[...] 2006-10-04
[156] 웹인용 Cobol brain drain: Survey results http://www.computerw[...] 2012-03-14
[157] 웹인용 Reserved Words Table http://documentation[...] Micro Focus 2014-03-03
[158] 웹인용 File Organizations http://supportline.m[...] Micro Focus 1998-01-01
[159] 서적 Sams Teach Yourself COBOL in 24 hours https://archive.org/[...] SAMS Publishing
[160] 콘퍼런스 Identifying Procedural Structure in Cobol Programs http://pages.cs.wisc[...] 1999-09-01
[161] 저널 Cobol minefield detection http://www.cs.vu.nl/[...] Wiley 2006-11-01
[162] 웹인용 September 2014 http://sourceforge.n[...] 2013-09-18
[162] 웹인용 The ALTER Statement http://documentation[...] Micro Focus
[162] 웹인용 ALTER Statement (Nucleus) http://www.csim.scu.[...] Fujitsu 1996-11-01
[162] 웹인용 ALTER Statement http://pic.dhe.ibm.c[...] IBM 2013-06-01
[163] 웹인용 COBOL Compiler from MVT http://www.jaymosele[...] 2015-01-17
[164] 웹인용 E. W. Dijkstra Archive: How do we tell truths that might hurt? (EWD498) http://www.cs.utexas[...] University of Texas at Austin
[165] 서적 Beginning COBOL for Programmers http://books.google.[...] Apress 2014-03-16
[166] 저널 Cracking the 500-language problem http://www.cs.vu.nl/[...] 2001-11-01
[167] 웹인용 COBOL http://catb.org/jarg[...] 2004-10-01
[168] 웹인용 An interview: Cobol defender http://books.google.[...] 1984-09-10
[169] 보도자료 Academia needs more support to tackle the IT skills gap http://www.microfocu[...] Micro Focus 2013-03-07
[170] 보도자료 Data Base Facility for COBOL 80 http://www.computer.[...] AFIPS Press 1978-06-01
[171] 웹인용 Resolutions from WG4 meeting 24 - June 26-28, 2003 Las Vegas, Nevada, USA http://www.cobolstan[...] 2003-07-11
[172] 저널 Cobol standard add-ons flayed http://books.google.[...] 1986-07-14
[173] 콘퍼런스 Full text of all questions submitted Academic Press
[174] 웹인용 Visual COBOL http://www-304.ibm.c[...] IBM 2013-08-21
[174] 웹인용 COBOL Compilers family https://www-03.ibm.c[...] IBM
[174] 웹인용 What platforms are supported by GNU Cobol? http://opencobol.add[...] 2014-01-04
[175] 웹인용 Introduction to COBOL http://www.csis.ul.i[...]



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

문의하기 : help@durumis.com