Loading AI tools
위키백과, 무료 백과사전
그누코볼(GnuCOBOL, 과거 이름: 오픈코볼/OpenCOBOL)은 코볼 프로그래밍 언어의 자유 구현체이다. 니시다 게이스케가 원안 설계를 맡았고 개발은 로저 와일(Roger While)이 주도하였다. 최근 개발은 사이먼 소비스치, 론 노먼, 에드워드 하트, 세르게이 케시린 등이 주도하고 있다.[2]
릴도 프라가나가 타이니코볼(TinyCOBOL)을 작업하는 동안 게이스케는 gcc와의 연동에 적합한 코볼 컴파일러 시도를 결정하였다. 이는 곧 오픈코볼 프로젝트가 되었다. 게이스케는 2005년 버전 0.31까지 주 개발자로 지냈다. 로저는 주 개발권을 인계받아 2007년 12월 27일 오픈코볼 1.0을 출시하기에 이른다. 오픈코볼 1.1 프리릴리스는 2009년 2월까지 작업이 계속되었다. 2012년 5월, 개발은 소스포지로 이동되었고 2009년 2월 프리릴리스는 릴리스로 표기되었다.[3] 2013년 9월 말, 오픈코볼은 GNU 프로젝트로 수용되어 그누 코볼(GNU Cobol)로 이름이 변경되었다가 마침내 2014년 9월 그누코볼(GnuCOBOL)로 명칭이 변경되었다.[4] 론 노먼은 그누코볼 2.0의 한 브랜치로서 리포트 라이터 모듈을 추가하였으며 세르게이 케시린은 C 대신 C++ 중간체를 사용하는 버전을 개발하였다.[5]
최신 릴리스는 현재 v3.1 파이널이며 2020년 7월 7일 출시되었다.
그누코볼 소스 코드(그누 코볼 및 오픈코볼 스펠링의 버전 포함)에 대한 자유 소프트웨어 재단으로의 저작권 이양은 2015년 6월 17일 마무리되었다.[6]
000100* HELLO.COB GnuCOBOL example
000200 IDENTIFICATION DIVISION.
000300 PROGRAM-ID. hello.
000400 PROCEDURE DIVISION.
000500 DISPLAY "Hello, world!".
000600 STOP RUN.
컴파일 및 실행:
$ cobc -x HELLO.COB
$ ./HELLO
Hello, world!
*> GnuCOBOL Hello World example
id division.
program-id. hello.
procedure division.
display "Hello, world!" end-display
goback.
컴파일 및 실행:
$ cobc -x -free hello.cob
$ ./hello
Hello, world!
그누코볼 2.0의 완화된 문법 옵션을 포함한 가장 짧은 형태의 유효한 코볼 프로그램은 빈 파일이다. 컴파일 및 실행은 다음과 같다:
$ cobc -x -frelax-syntax ./empty.cob
./empty.cob: 1: Warning: PROGRAM-ID header missing - assumed
$ ./empty
$
초기 버전 및 완화된 문법의 경우:
display"Hello, world!".
컴파일 및 실행:
$ cobc -x -frelax-syntax -free hello.cob
hello.cob: 1: Warning: PROGRAM-ID header missing - assumed
hello.cob: 1: Warning: PROCEDURE DIVISION header missing - assumed
$ ./hello
Hello, world!
문법 완화 없이(모든 버전의 그누 코볼, 그누 코볼, 오픈코볼에 해당. 고정 레이아웃 코볼 소스의 경우 7개의 공백이 줄 맨 앞에 선행한다):
program-id.h.procedure division.display "Hello, world!".
오류 없이 컴파일:
$ cobc -x smallest.cob
$ ./smallest
Hello, world!