코볼
역사 및 사양 > 코볼 60

취리히 알골 58 회의가 있은지 정확히 한 해 뒤인 1959년 5월 28, 29일에 펜타곤에서 회의가 열렸고 사무를 위한 공용 프로그래밍 언어를 만드는 것을 논의하였다. 41명의 사람들이 참석하였고 당시 의장은 필립스였다. 미국 국방부는 각기 다른 컴퓨터에서 동일한 데이터 처리 프로그램들을 실행할 수 있는지에 대해 걱정하였다. 당시 유일한 주류 언어였던 포트란은 이러한 프로그램들 작성에 필요한 기능들이 부족했다.
대표들은 은행업, 보험 분야에서 공과금, 재고 관리에 이르기까지 다양한 환경에서 동작할 수 있는 언어를 열정적으로 기술하였다. 더 많은 사람들이 프로그래밍할 수 있어야 하고 새로운 언어는 동시대 기술의 제약을 받아서는 안 된다는 데 대하여 대표자 전원이 동의하였다. 언어는 최대한 영어를 사용하여야 하고 변경이 가능해야 하며 기계와는 독립적이어야 하고 사용하기 쉬워야 한다는 데 대하여 다수가 동의하였다.
이 모임을 통해 운영 위원회와 중장기 위원회들이 설립되었다. 단기 위원회는 9월부터 3개월 동안 중간 언어를 위한 사양을 만들어냈으며 그 뒤 다른 위원회들에 의해 개선되었다. 그러나 공식 임무는 기존 프로그래밍 언어들의 장단점을 식별하는 것이었고 명백하게 이들에게 새로운 언어를 만들라고 지시하는 것은 아니었다.
기한은 단기 위원회에 의해 불신 속에 마감되었다. 베티 홀버튼(Betty Holberton)이라는 한 구성원은 3개월 기한을 둔 것이 역겨울 만큼 낙천주의적이라고 기술했으며 이 언어가 임시방편이 될지에 대해서는 의심을 품었다.
운영 위원회는 6월 4일 만나 협의회를 CODASYL(Committee on Data Systems Languages)라는 이름으로 정하고, 집행 위원회를 설립할 것을 동의하였다.
단기 위원회는 여섯 곳의 컴퓨터 제조업체와 세 군데의 정부 기관으로 이루어져 있었다. 여섯 곳의 제조업체들은 버로스(Burroughs), IBM, 미니애폴리스-하니웰 (하니웰 연구소), RCA, 스페리 랜드(Sperry Rand), 실베이니아 일렉트릭 프로덕츠였다. 세 군데의 정부 기관들은 미국 공군, 해군의 데이비드 테일러 모델 베이슨(David Taylor Model Basin), 국립표준국(현재의 미국 국립표준기술연구소)이었다. 이 위원회의 위원장은 미국 국립표준국의 조지프 웨그스타인(Joseph Wegstein)이었다. 데이터 설명, 문(文), 기존의 응용 프로그램, 사용자 경험을 조사하면서 작업이 개시되었다.
이 위원회는 주로 FLOW-MATIC, AIMACO, COMTRAN이라는 프로그래밍 언어들을 조사하였다. FLOW-MATIC 언어는 특히 영향력이 있었는데 그 까닭은 그것이 내부에 구현되었기 때문이기도 하지만 그 밖의 이유로는 AMIACO가 단지 사소한 변경만으로 그것을 파생시켰기 때문이다.
FLOW-MATIC의 발명가 그레이스 호퍼는 또한 그 위원회에 기술 고문 역할을 하였다. FLOW-MATIC이 코볼에 기여한 주된 사항으로는 긴 변수 이름, 명령어를 위한 영어 낱말, 데이터 기술 및 명령의 구분이다.
밥 베머가 발명한 IBM의 COMTRAN 언어는 그레이스 호퍼의 동료들이 만든 단기 위원회에 의해 FLOW-MATIC의 경쟁 언어로 간주되었다. 기능들 중 일부는 코볼에 포함되지 않았는데, IBM이 설계 과정을 지배한 것처럼 보이지 않게 하기 위함이었고, 1981년에 진 사멧은 그녀 자신을 포함해서 "강력한 반IBM 편견"이 일부 위원회 구성원들에게 있음을 언급했다. 한 사례로 COMTRAN 설명서의 저자이자 중기 위원회 구성원이었던 로이 골드핑거가 그의 언어를 지원하고 대수식 이용을 장려하기 위해 소위원회 회의에 참석했는데, 그 뒤 그레이스 호퍼는 단기 위원회에 메모를 보내면서 영어가 기반이 되는 언어를 만들겠다는 스페리 랜드의 노력을 재차 강조했다. 1980년에 그레이스 호퍼는 코볼 60이 95% FLOW-MATIC으로 되어 있으며 COMTRAN은 매우 적은 부분에서 영향을 주었다고 언급하였다. 코볼에 포함된 COMTRAN의 기능들은 공식들, PICTURE 절, GO TO의 필요성을 제거하는 개선된 IF 문, 더 강력한 파일 관리 시스템을 포함하였다.
이 위원회의 노고가 유용했는지에 대해서는 큰 논란의 대상이 되었다. 일부 구성원들이 이 언어가 너무 많은 절충이 있었고 위원회의 설계에 따른 결과물이라고 생각한 반면, 다른 구성원들은 조사된 세 개의 언어들 보다 더 낫다고 느꼈다. 일부는 이 언어가 너무 복잡하다고 생각했고 다른 이들은 너무 단순하다고 여겼다. 논란이 되는 기능들은 일부분이 데이터 처리 사용자들에게 쓸모 없거나 너무 고급적인 기능들로 간주되었다. 이러한 기능들에는 불 대수, 공식, 테이블 서브스크립트(subscripts, indices)가 포함되었다. 논란의 다른 관점으로는 키워드를 문맥에 대응할 것인지에 대한 것이었다. 문맥에 의존적인 키워드들은 거부되었지만 이러한 접근은 나중에 PL/I에 사용되었고, 부분적으로는 2002년부터 코볼에 사용되었다. 당시 일부 존재하였던 운영 체제와의 상호 작용과 기능(순수하게 수학적이었고 데이터 처리용은 아닌 것으로 간주)에 대한 고려가 거의 없었다.
이 사양들은 9월 4일 집행 위원회에 제시되었으나, 기대에는 한참 못미쳤다. 조지프 웨그스타인은 "여기에 러프 스팟(rough spot)이 포함되어 있고 일부 추가가 필요하다"고 언급했고 나중에 밥 베머는 이들을 잡동사니로 기술하였다. 소위원회는 12월까지 그것을 개선하라는 지시를 받았다.
9월 중순 회의에서 위원회는 새로운 언어의 이름을 논의하였다. 제안된 이름으로는 "BUSY" (비즈니스 시스템: Business System), "INFOSYL"(정보 시스템 언어: Information System Language), "COCOSYL"(공용 컴퓨터 시스템 언어: Common Computer Systems Language)를 포함하였다 코볼(COBOL)이라는 이름은 밥 베머가 제안하였다.
10월에 중기 위원회는 로이 넛이 만든 FACT 언어 사양의 사본을 받았다. 이 언어의 기능들은 위원회에 매우 큰 감명을 주었고, 그것으로 기본 코볼에 대한 결의안을 통과시켰다. 이것은 사양에 대해 잘 진척시켜온 단기 위원회에게는 충격이었다. 기술적으로 우위에 있었음에도 FACT는 이식성을 염두에 두지도 않았고, 제조업체나 사용자 합의를 통해 만들어지지도 않았다. 증명할만한 구현체 또한 부족하였으므로, FLOW-MATIC 기반 코볼의 지지자들이 이 결의안을 뒤집을 수 있었다. RCA 대표 하워드 브롬버그(Howard Bromberg) 또한 FACT를 차단함으로써 코볼 구현체에 대한 RCA의 노고가 물거품이 되지 않게 하였다.
'그러면 어떠한 이름을 새기고 싶으십니까?'

나는 '당신을 위해 여기에 쓰겠습니다'라고 말했고 그 이름을 COBOL이라고 썼다.

'그 이름의 뜻이 무엇입니까?'

'글쎄요, 이것은 폴란드 이름입니다. 우리는 이름을 줄였고 불필요한 수많은 표기법을 없앴습니다.'
“
”
하워드 브롬버그 - 어떻게 코볼 묘비를 구매했는가
곧 이 위원회는 너무 방대해져 진행 속도를 더 낼 수 없었다. 실망감을 느낀 하워드 브롬버그는 COBOL이라 새겨진 $15의 묘비를 구매하고 찰스 필립스에게 보내 그의 불만을 드러냈다.
소위원회가 구성되어 기존 언어들을 분석하였는데, 여기에는 6명의 인원으로 이루어졌다:
윌리엄 셀든(William Selden), 거트루드 티어니(Gertrude Tierney) (IBM),
하워드 브롬버그(Howard Bromberg), 하워드 디스카운트(Howard Discount) (RCA),
버넌 리브스(Vernon Reeves), 진 E. 사멧(Jean E. Sammet) (Sylvania Electric Products)
소위원회는 사양을 만드는 일로 대부분을 보냈고, 최종 사양을 생산하기 앞서 단기 위원회가 그들의 일을 검토하고 수정하는 일을 맡았다.
1960년 1월 3일 집행 위원회는 이 사양을 승인하였고 정부 인쇄소에 전달되어 "COBOL 60"으로 인쇄되었다. 이 언어에 언급된 목적은 효율적이고 이식 가능한 프로그램들이 쉽게 작성될 수 있게 함으로써 사용자들이 적은 노력과 비용을 들여 새로운 시스템으로 이전할 수 있게 하고 미숙한 프로그래머들도 적절히 쓸 수 있게 하기 위함이다. CODASYL 집행 위원회는 사용자들과 업체들로부터의 질문에 답하고 사양을 확장하고 개선할 목적으로 나중에 코볼 유지보수 위원회를 창설하였다.
1960년 동안 코볼 컴파일러를 만들 예정인 제조업체의 수가 늘어났다. 9월까지 다섯 곳 이상의 제조업체가 CODASYL (벤딕스, 컨트롤 데이터 코퍼레이션, 제너럴 일렉트릭(GE), 내셔널 캐시 레지스터, 필코)에 참여하였고 대표되는 모든 제조업체들이 코볼 컴파일러를 발표하였다. GE와 IBM은 코볼을 자신들의 언어들인 GECOM과 COMTRAN에 각각 통합하였다. 반면, 인터내셔널 컴퓨터스 앤드 태뷸레이터스(International Computers and Tabulators)는 그들의 언어인 CODEL을 코볼로 대체할 예정이었다.
그 와중에 RCA와 스페리 랜드는 코볼 컴파일러를 만드는 일을 하였다. 최초의 코볼 프로그램은 8월 17일 RCA 501에서 수행되었다. 12월 6일, 7일에 동일한 코볼 프로그램(사소한 변경사항이 있긴 하지만)이 RCA 컴퓨터, Remington-Rand 유니박 컴퓨터에서 실행되어 이들의 호환성을 입증하였다.
오늘날 모든 코볼 참조 매뉴얼에는 다음과 같이 인쇄되어 있다:
코볼은 산업 표준이며 어떠한 컴퓨터나 회사 그룹의 재산도, 어느 단체나 단체 그룹의 소유도 아니다.
프로그래밍 시스템과 언어의 정확성과 기능에 관해 기여한 자나 CODASYL 코볼 위원회가 표현, 암시한 부분에 대해서는 어떠한 보증도 없다. 또, 이와 연관된 어떠한 기여자나 위원회에 의해 어떠한 책임도 물을 수 없다. 여기에 사용된, 저작권 보호를 받는 자료의 저자와 저작권자는 아래와 같다:
이들은 코볼 사양의 일부나 전체에 대해 이 자료의 이용을 허가함. 이러한 권한은 프로그래밍 설명서나 비슷한 출판물의 코볼 사양의 재생산 및 이용으로 확장됨.